toList()的实现在哪里?

时间:2019-10-04 09:41:28

标签: java java-8 java-stream

我对the best answer on this page中的以下代码有疑问:

return people
     .filter( p -> p.age() < 19)
     .collect(toList());

toList()的实现在哪里? java.util.stream.Collectors.toList()?我不明白为什么toList()可以在这里。如何运作?

2 个答案:

答案 0 :(得分:3)

toList()表示静态导入具有java.util.stream.Collectors.toList的{​​{3}}。

import static java.util.stream.Collectors.toList;

Collectors.toList()期望有Stream#collect

<R, A> R collect(Collector<? super T, A, R> collector);

Collector返回一个Collectors.toList()

public static <T> Collector<T, ?, List<T>> toList() { ... }

答案 1 :(得分:0)

这是Collectors界面中的静态方法-参见此处:https://docs.oracle.com/javase/8/docs/api/java/util/stream/Collectors.html#toList--