Ответ
В Java лямбда-функция является экземпляром функционального интерфейса — интерфейса с одним абстрактным методом (SAM). Тип лямбды определяется контекстом, где она используется, например:
// Функциональный интерфейс
interface MyFunction {
int apply(int a, int b);
}
// Лямбда присваивается переменной типа MyFunction
MyFunction add = (a, b) -> a + b;
Здесь тип лямбды (a, b) -> a + b — MyFunction. Компилятор выводит тип на основе ожидаемого интерфейса (например, Runnable, Comparator, Function из java.util.function).