Как работает лямбда в Java

«Как работает лямбда в Java» — вопрос из категории Java, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

Синтаксис:

(параметры) -> { тело }

Пример без лямбды:

Runnable r = new Runnable() {
    @Override
    public void run() {
        System.out.println("Hello");
    }
};

С лямбдой:

Runnable r = () -> System.out.println("Hello");

Ключевые особенности:

  • Типы параметров можно опускать (выводятся из контекста)
  • Если параметр один, скобки можно опустить
  • Если тело однострочное, фигурные скобки и return можно опустить
  • Лямбды могут захватывать final или effectively final переменные из внешней области видимости