如何为字节 [] 编写模拟匹配器?

Bet*_*ide 5 java matcher primitive-types mockito

我需要一个复杂Matcherbyte[]. 下面的代码不会因为编译argThat的回报Byte[]。有没有办法为Matcher原始类型数组编写专用?

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

        @Override
        public boolean matches(Object argument) {
            // do complex investigation of byte array
            return false;
        }
    }));
Run Code Online (Sandbox Code Playgroud)

axt*_*avt 2

你真的可以在这里使用new ArgumentMatcher<byte[]> { ... }

verify(communicator).post(Matchers.argThat(new ArgumentMatcher<byte[]>() {
    @Override
    public boolean matches(Object argument) {
        // do complex investigation of byte array
        return false;
    }
}));
Run Code Online (Sandbox Code Playgroud)

您所指的答案说,这byte[]不是 的有效替代品T[](因为T[]假设Object[],但byte[]不是),但在您的情况下,没有T[]涉及,并且byte[],作为 的子类Object,是 simple 的有效替代品T