Лямбда-выражение в Java — это анонимная функция, которая позволяет представить экземпляры функциональных интерфейсов в более краткой форме.
Особенности:
- Отсутствие имени: У лямбды нет имени, она определяется "на лету".
- Отсутствие модификаторов доступа: Не имеет
public, private и т.д.
- Отсутствие возвращаемого типа: Возвращаемый тип компилятор определяет автоматически.
- Тело: Может быть выражением (не нужно ключевое слово
return) или блоком кода.
- Параметры: Передаются в скобках, типы могут быть опущены, если компилятор может их вывести.
Синтаксис:
параметры -> тело
Примеры:
- Без параметров:
() -> System.out.println("Hello")
- С одним параметром:
x -> x * x
- Со множеством параметров:
(a, b) -> a + b
- С явным указанием типов:
(int x, int y) -> x + y
- С блоком кода:
java
Функциональный интерфейс — интерфейс с одним абстрактным методом. Лямбда-выражение реализует этот абстрактный метод.
java
java
Преимущества:
- Краткость: Уменьшает количество бойлерплейт-кода.
- Функциональное программирование: Позволяет использовать подходы функционального программирования (например, при работе с потоками Stream API).
- Читаемость: В некоторых случаях делает код более понятным, особенно при передаче простых блоков логики.
Лямбда-выражения были введены в Java 8.