Java 如何为字节[]编写mockito匹配器?

Java 如何为字节[]编写mockito匹配器?,java,mockito,primitive-types,matcher,Java,Mockito,Primitive Types,Matcher,我需要一个复杂的匹配器用于字节[]。下面的代码没有编译,因为arg返回Byte[]。有没有办法为基元类型数组编写专用的匹配器 verify(communicator).post(Matchers.argThat(new ArgumentMatcher<Byte[]>() { @Override public boolean matches(Object argument) { // do complex investi

我需要一个复杂的
匹配器
用于
字节[]
。下面的代码没有编译,因为
arg返回
Byte[]
。有没有办法为基元类型数组编写专用的
匹配器

    verify(communicator).post(Matchers.argThat(new ArgumentMatcher<Byte[]>() {

        @Override
        public boolean matches(Object argument) {
            // do complex investigation of byte array
            return false;
        }
    }));
verify(communicator).post(Matchers.argThat(new ArgumentMatcher()){
@凌驾
公共布尔匹配(对象参数){
//对字节数组进行复杂的研究
返回false;
}
}));

您确实可以在这里使用
新的ArgumentMatcher{…}

verify(communicator).post(Matchers.argThat(new ArgumentMatcher<byte[]>() {
    @Override
    public boolean matches(Object argument) {
        // do complex investigation of byte array
        return false;
    }
}));
verify(communicator).post(Matchers.argThat(new ArgumentMatcher()){
@凌驾
公共布尔匹配(对象参数){
//对字节数组进行复杂的研究
返回false;
}
}));

您所指的答案是,
byte[]
不是
T[]
的有效替代品(因为
T[]
假设
Object[]
,而
byte[]
不是),但在您的情况下,不涉及
T[]
,而
byte[]
Object
的子类,是简单的
T

的有效替代品,那么
新的ArgumentMatcher{…}
呢?不能对泛型使用基元类型。请参见,但数组不是基元类型,即使它们的元素是.Nope。请看或。为什么不使用?或参数匹配器中的对象,如果您不介意编译时警告的话。