Назад к вопросам
Junior
98
questionbank
Что такое лямбда-выражение в Java?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Лямбда-выражение в Java — это анонимная функция, которая позволяет представить экземпляры функциональных интерфейсов в более краткой форме.
Особенности:
- Отсутствие имени: У лямбды нет имени, она определяется "на лету".
- Отсутствие модификаторов доступа: Не имеет
public,privateи т.д. - Отсутствие возвращаемого типа: Возвращаемый тип компилятор определяет автоматически.
- Тело: Может быть выражением (не нужно ключевое слово
return) или блоком кода. - Параметры: Передаются в скобках, типы могут быть опущены, если компилятор может их вывести.
Синтаксис:
параметры -> тело
Примеры:
- Без параметров:
() -> System.out.println("Hello") - С одним параметром:
x -> x * x - Со множеством параметров:
(a, b) -> a + b - С явным указанием типов:
(int x, int y) -> x + y - С блоком кода:
(a, b) -> { int sum = a + b; return sum; }
Функциональный интерфейс — интерфейс с одним абстрактным методом. Лямбда-выражение реализует этот абстрактный метод.
// Пример использования с функциональным интерфейсом Runnable
Runnable myRunnable = () -> System.out.println("Running from lambda");
new Thread(myRunnable).start();
// Пример использования с функциональным интерфейсом Predicate
import java.util.function.Predicate;
Predicate<Integer> isEven = num -> num % 2 == 0;
boolean result = isEven.test(4); // true
Преимущества:
- Краткость: Уменьшает количество бойлерплейт-кода.
- Функциональное программирование: Позволяет использовать подходы функционального программирования (например, при работе с потоками Stream API).
- Читаемость: В некоторых случаях делает код более понятным, особенно при передаче простых блоков логики.
Лямбда-выражения были введены в Java 8.