Назад к вопросам
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.