我有以下代码:
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 建议我应该将 lambda 表达式替换为方法引用。我想这样做,只是我不确定流列表的新通用类型应该是什么。我试图评估表达式 personList::stream 但我得到“没有这样的实例字段:'stream'”。如果我尝试 List::stream 或 ArrayList::stream (人员列表的具体类型),我会得到:“没有这样的静态字段:'stream'”。有没有办法将方法引用添加到列表中?如果是这样,列表的通用类型应该是什么?
谢谢
正如 assylias 指出的那样,IDEA 只是在抱怨并且代码运行没有问题,我仍然在 IDEA 13 中遇到相同代码的问题,因为 stream.add 期望返回 Stream 和 List::stream 的函数返回 Stream。为了解决它,我最终使用了以下代码:
List<Person> personList = getPersons();
List<Supplier<Stream<Person>>> streams = new ArrayList<>();
streams.add(personList::stream);
streams.add(personList::parallelStream);