Sobes.tech
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.