Что такое класс ссылок на методы?
У меня есть следующий код:
List<Person> personList = getPersons();
List<Function<List<Person>, Stream<Person>>> streams = new ArrayList<>();
streams.add(p -> p.stream());
streams.add(p -> p.parallelStream());
Идея Intellij предполагает, что я должен заменить лямбда-выражения ссылками на методы. Я бы хотел сделать это, только я не уверен, каким должен быть новый универсальный тип списка потоков. Я попытался оценить выражение personList:: stream, но я получаю "нет такого поля экземпляра: 'stream'". Если я попробую List:: stream или ArrayList:: stream (конкретный тип списка персон), я получу: "нет такого статического поля: 'stream'". Есть ли способ добавить ссылки на методы список? если да, то каким должен быть общий тип списка?
Спасибо
Как отметил ассилий, IDEA просто жаловалась, и код работал без проблем, У меня все еще были проблемы с тем же кодом в IDEA 13 начиная с потоков.добавьте ожидаемую функцию, которая возвращает Stream и List:: stream возвращает Stream. Для ее решения я использовал следующий код:
List<Person> personList = getPersons();
List<Supplier<Stream<Person>>> streams = new ArrayList<>();
streams.add(personList::stream);
streams.add(personList::parallelStream);