Назад к вопросам
Junior
69
questionbank

Что такое лямбда-выражения в Java?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Лямбда-выражение в Java — это краткий способ представления анонимных функций (функций без имени). Они используются для создания экземпляров функциональных интерфейсов.

Основные компоненты:

  • Список параметров: Круглые скобки () содержат список параметров. Если параметров нет, используются пустые скобки.
  • Стрелка ->: Отделяет список параметров от тела лямбда-выражения.
  • Тело: Может быть одиночным выражением или блоком кода в фигурных скобках {}.

Пример без параметров:

// Функциональный интерфейс
@FunctionalInterface
interface Greeting {
    void sayHello();
}

// Использование лямбда-выражения
Greeting greeting = () -> System.out.println("Hello, World!");

Пример с параметрами:

// Функциональный интерфейс
@FunctionalInterface
interface MathOperation {
    int operate(int a, int b);
}

// Использование лямбда-выражения
MathOperation addition = (a, b) -> a + b;
MathOperation subtraction = (a, b) -> {
    return a - b;
};

Преимущества:

  • Краткость: Уменьшает объем boilerplate-кода.
  • Удобство: Использование вместе со Stream API для обработки коллекций.
  • Функциональное программирование: Поддержка элементов функционального программирования в Java.

Ограничения:

  • Могут использоваться только с функциональными интерфейсами (интерфейсы с одним абстрактным методом).
  • Не могут иметь состояния (т.е. не могут изменять переменные вне своего контекста, если эти переменные явно не объявлены final или effectively final).

Лямбда-выражения были введены в Java 8.