Junior
Какви са лямбда изразите в Java?
sobes.tech AI
Отговор от AI
Изразът lambda в Java е анонимна (без име) функция, която реализира функционален интерфейс.
Основни характеристики:
- Нямат име.
- Могат да имат параметри.
- Тялото може да се състои от едно изразяване или блок от оператори.
- Типът на връщаната стойност не е указан (автоматично се извежда).
- Необходими са за функционално програмиране и работа с потоци (Streams API).
Синтаксис:
// Без параметри
() -> { // тяло }
// С един параметър (типът може да бъде пропуснат)
param -> израз
// С няколко параметъра (типът може да бъде пропуснат, необходими са скоби)
(param1, param2) -> { // тяло }
Пример за използване:
// Функционален интерфейс (вграден)
import java.util.function.Consumer;
// Реализация с помощта на lambda
Consumer<String> принтер = s -> System.out.println(s);
принтер.accept("Здравей свят!");
// Използване в метод, който приема функционален интерфейс
import java.util.Arrays;
import java.util.List;
List<Integer> числа = Arrays.asList(1, 2, 3, 4, 5);
числа.forEach(n -> System.out.println(n)); // forEach приема Consumer
Предимства:
- По-кратък код.
- Подобрена четливост (в прости случаи).
- Възможност за използване на функционално програмиране.
- Улеснява работата с колекции и многопоточност.
Ограничения:
- Вложени или дълги lambda изрази могат да бъдат трудни за разбиране.
- Нямат състояние (не могат да имат полета на екземпляра).