Имам следния код:
List<Person> personList = getPersons();
List<Function<List<Person>, Stream<Person>>> streams = new ArrayList<>();
streams.add(p -> p.stream());
streams.add(p -> p.parallelStream());
Intellij Idea предполага, че трябва да заменя ламбда изразите с препратки към методи. Бих искал да го направя, но не съм сигурен какъв трябва да бъде новият общ тип на списъка с потоци. Опитах се да оценя израза personList::stream, но получавам „Няма такова поле за екземпляр: „поток““. Ако опитам List::stream или ArrayList::stream (Конкретният тип на списъка с лица), получавам: „Няма такова статично поле: „поток““. Има ли начин да добавите препратки към метод към списък? ако е така, какъв трябва да бъде общият тип на списъка?
Благодаря
Както assylias посочи, IDEA просто се оплакваше и кодът се изпълняваше без проблем, все още имах проблеми със същия код в IDEA 13, тъй като streams.add очакваше функция, която връща Stream, а List::stream връща Stream. За да го разреша, в крайна сметка използвах следния код:
List<Person> personList = getPersons();
List<Supplier<Stream<Person>>> streams = new ArrayList<>();
streams.add(personList::stream);
streams.add(personList::parallelStream);