Sobes.tech
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 изрази могат да бъдат трудни за разбиране.
  • Нямат състояние (не могат да имат полета на екземпляра).