Страницы

Поиск по вопросам

среда, 29 января 2020 г.

Что значит :: знак в java? [дубликат]

#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 для каждого элемента из потока вызывается вывод на экран Если владеете английским, хорошее объяснение с примерами приведено в этом ответе

Комментариев нет:

Отправить комментарий