#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("Привет!");};
Комментариев нет:
Отправить комментарий