Нет методов, соответствующих имени (именам) потока в иерархии класса java.util.Arrays$ArrayList

Итак, я использую java 8 и пытаюсь написать несколько тестов с помощью PowerMock и Mockito. Я получаю MethodNotFoundException с сообщением:

No methods matching the name(s) stream were found in the class hierarchy of class java.util.Arrays$ArrayList.

Я дважды проверил документацию по ArrayList и определенно похоже, что он наследует stream от Collections. Это проблема с PowerMockito или я что-то упустил?

Строка под вопросом

PowerMockito.when(thing.call("services", "things")).thenReturn(Arrays.asList("testService")); // Doesn't matter if it's new ArrayList<String>()));

Затем что-то вроде этого называется

services.stream().filter( x -> //filter).collect(Collectors.toList())

РЕДАКТИРОВАТЬ: После дальнейших исследований это оказалось проблемой PowerMock. Хотелось бы решения.


person ford prefect    schedule 27.10.2015    source источник


Ответы (2)


Это оказалось ошибкой в ​​​​PowerMock 1.5.5 и было решено в 1.5.6.

Ссылка: https://github.com/jayway/powermock/issues/536

person ford prefect    schedule 27.10.2015
comment
Проблема есть даже с 1.5.4 - person Raj; 14.02.2019

java.util.Arrays$ArrayList является внутренним классом java.util.Arrays, возвращаемым Arrays.asList(), и не совпадает с java.util.ArrayList.

Если метод stream() не может быть найден, это может быть связано с тем, что java.util.Arrays$ArrayList является закрытым?

person Christoffer Hammarström    schedule 27.10.2015
comment
Это справедливое замечание. Но теперь я попробовал это только с новым ArrayList‹String›(), и ошибка все еще появляется. - person ford prefect; 27.10.2015
comment
Нашел проблему. Ошибка в powermock Спасибо за помощь - person ford prefect; 27.10.2015