Страницы

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

воскресенье, 8 декабря 2019 г.

Лямбда-выражения [дубликат]

#java #lambda


        
             
                
                    
                        
                            This question already has an answer here:
                            
                        
                    
                
                        
                            Синтаксис Java: “->”
                                
                                    (1 ответ)
                                
                        
                                Closed 3 года назад.
            
                    
Объясните простыми словами, что значит лямбда-выражение, (желательно, с показательным
примером)? Что оно делает, другими словами. Сколько читаю, лазаю по всяким сайтам нигде
не могу найти простого и понятного объяснения
    


Ответы

Ответ 1



Просто функция, которая неявно приводится к любому интерфейсу с единственным методом, причём имеющим ту же сигнатуру. Такой интерфейс называется функциональным.

Ответ 2



С определение раз всё ясно, вот пример простой: кликаем по форме, сообщаем координаты клика. Без лямбд - определяем анонимный класс, переопределяющий метод handle. С лямбдами - одна лямбда, в которой содержится "тело" метода handle: Без лямбд: root.setOnMousePressed(new EventHandler() { @Override public void handle(MouseEvent e) { System.out.println("Привет!" + e.getX() + ":" + e.getY()); } }); С лямбдами: root.setOnMousePressed((MouseEvent e) -> { System.out.println("Привет!" + e.getX() + ":" + e.getY()); }); Или даже так: root.setOnMousePressed((e)->{System.out.println("Привет!" + e.getX() + ":" + e.getY());}); С Runnable всё так же легко и просто: Thread thread = new Thread(()->{System.out.println("Привет!");}); thread.start(); Или для отдачи задания в тред пул: Runnable runnable = ()->{System.out.println("Привет!");};

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

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