Middle
Какви са лямбда изразите в Java?
sobes.tech AI
Отговор от AI
Изразът lambda в Java е анонимна функция. Той позволява да разглеждате функционалността като аргумент на метод или като код като данни.
Основни характеристики:
- Анонимност: Няма име.
- Функционален интерфейс: Ламбда изразът винаги е свързан с функционален интерфейс (интерфейс с един абстрактен метод).
- Синтаксис:
(параметри) -> { тяло }
Пример за използване с функционалния интерфейс Consumer:
import java.util.function.Consumer;
// Функционалният интерфейс Consumer<T> има един абстрактен метод accept(T t)
Consumer<String> поздрав = (име) -> {
System.out.println("Здравей, " + име);
};
поздрав.accept("Свят"); // Изход: Здравей, Свят
Пример за използване с интерфейса Runnable:
// Интерфейсът Runnable има един абстрактен метод run()
Runnable задача = () -> {
System.out.println("Задачата се изпълнява в отделен поток");
};
new Thread(задача).start(); // Стартира задачата в нов поток
Варианти на синтаксиса:
- Без параметри:
() -> { System.out.println("Здравей"); } - Един параметър без скоби:
име -> System.out.println("Здравей, " + име) - Няколко параметъра със скоби и типове:
(int a, int b) -> { return a + b; } - Няколко параметъра без типове (инференция на типа):
(a, b) -> a + b - Тяло от една линия без
return:(a, b) -> a + b - Многосрочно тяло с фигурни скоби и
return(ако е необходимо):(a, b) -> { int сума = a + b; return сума; }
Ламбда изразите правят кода по-компактен, по-лесен за четене и позволяват използването на функционално програмиране в Java.