我有一个问题,在这个页面上的最佳答案中对以下代码有疑问:
return people
.filter( p -> p.age() < 19)
.collect(toList());
toList()
的实施在哪里?java.util.stream.Collectors.toList()
?我不明白为什么toList()
会在这里。它是如何工作的?
toList()
表示Collectors.toList()
java.util.stream.Collectors.toList
是静态导入的。
import static java.util.stream.Collectors.toList;
Stream#collect
预计会出现Collector
<R, A> R collect(Collector<? super T, A, R> collector);
Collectors.toList()
返回一个Collector
public static <T> Collector<T, ?, List<T>> toList() { ... }
它是收集器界面中的一个静态方法 - 请参阅此处: https://docs.oracle.com/javase/8/docs/api/java/util/stream/Collectors.html#toList--