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。请看或。为什么不使用?或参数匹配器中的对象,如果您不介意编译时警告的话。