Где реализация toList ()? - PullRequest
0 голосов
/ 04 октября 2019

У меня вопрос к следующему коду в лучший ответ на этой странице :

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

Где находится реализация toList()? java.util.stream.Collectors.toList()? Я не понимаю, почему toList() может быть здесь. Как это работает?

Ответы [ 2 ]

3 голосов
/ 04 октября 2019

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() возвращает a Collector

public static <T> Collector<T, ?, List<T>> toList() { ... }
0 голосов
/ 04 октября 2019

Это статический метод в интерфейсе Collectors - см. Здесь: https://docs.oracle.com/javase/8/docs/api/java/util/stream/Collectors.html#toList--

...