#java #lambda #java_stream #лямбда_выражение
На этот вопрос уже дан ответ здесь:
Что значит оператор ::?
(1 ответ)
Закрыт 2 года назад.
Часто вижу :: при определении нового экземпляра, в стримах, иногда в лямда выражениях.
Что он значит? Что значит List :: stream?
P.S. И как он называется?
Ответы
Ответ 1
Оператор "ссылка на метод" (Method Reference). По сути - сокращенная запись для ссылки на метод из функционального интерфейса при использовании лямбды. List::stream является ссылкой на метод stream() из интерфейса List List> list = Arrays.asList( Arrays.asList(1,2,3), Arrays.asList(4,5,6) ); list.steam() .flatMap(List::stream) .forEach(System.out::println); приведенный отрывок кода означает: 1. Мы инициализируем поток, в котором будет список чисел (Stream
>) 2. с помощью flatMap мы объединяем список чисел в поток чисел (Stream
) 3. с помощью forEach и ссылки на метод println для каждого элемента из потока вызывается вывод на экран Если владеете английским, хорошее объяснение с примерами приведено в этом ответе
Комментариев нет:
Отправить комментарий