Какой тип у Lambda функции в Java

«Какой тип у Lambda функции в Java» — вопрос из категории Java, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Java лямбда-функция является экземпляром функционального интерфейса — интерфейса с одним абстрактным методом (SAM). Тип лямбды определяется контекстом, где она используется, например:

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

// Лямбда присваивается переменной типа MyFunction
MyFunction add = (a, b) -> a + b;

Здесь тип лямбды (a, b) -> a + bMyFunction. Компилятор выводит тип на основе ожидаемого интерфейса (например, Runnable, Comparator, Function из java.util.function).