Тип возвращаемого значения у лямбда-выражений в Java определяется контекстом, в котором лямбда используется, а именно — функциональным интерфейсом, к которому она приводится.
Как определяется тип возвращаемого значения у Lambda-выражений в языке Java?
Тип возвращаемого значения у лямбда-выражений в Java определяется контекстом, в котором лямбда используется, а именно — функциональным интерфейсом, к которому она приводится.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Тип возвращаемого значения у лямбда-выражений в Java определяется контекстом, в котором лямбда используется, а именно — функциональным интерфейсом, к которому она приводится.
Каждый функциональный интерфейс имеет один абстрактный метод с определённой сигнатурой, включая тип возвращаемого значения. Компилятор смотрит на этот метод и выводит тип возвращаемого значения лямбды из его сигнатуры.
Например:
interface Calculator {
int calculate(int a, int b);
}
Calculator sum = (a, b) -> a + b; // возвращаемый тип int, как у метода calculate
Здесь лямбда (a, b) -> a + b возвращает int, потому что метод calculate возвращает int.
Если лямбда используется без контекста функционального интерфейса, компилятор не сможет определить тип возвращаемого значения.