У меня есть следующий код:
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, но получаю "Нет такого поля экземпляра: '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);