Как написать mockito matcher для байта []?

Мне нужен комплекс Matcher за byte[], Код ниже не компилируется, так как 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;
        }
    }));

1 ответ

Вы действительно можете использовать 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;
    }
}));

Ответы, на которые вы ссылаетесь, говорят, что byte[] не является действительной заменой T[] (так как T[] предполагает Object[], который byte[] нет), но в вашем случае нет T[] участие и byte[]будучи подклассом Objectявляется действительной заменой простого T,

Другие вопросы по тегам