Возврат значения из лямбды в Java
Если тело лямбды - одно выражение без фигурных скобок,
его результат автоматически становится возвращаемым значением
метода интерфейса. Слово return в такой форме
не пишут.
Интерфейс возвращает число - длину заголовка:
@FunctionalInterface
interface TitleScore {
int score(String title);
}
Лямбда с неявным возвратом:
TitleScore byLength = title -> title.length();
Для void-метода выражение справа не требуется -
достаточно вызова с побочным эффектом:
@FunctionalInterface
interface TitleLogger {
void log(String title);
}
TitleLogger toConsole = title ->
System.out.println("title: " + title);
Проверка в main:
public class Main {
public static void main(String[] args) {
TitleScore byLength = title -> title.length();
System.out.println(byLength.score("api"));
TitleLogger toConsole = title ->
System.out.println("title: " + title);
toConsole.log("draft");
}
}
Сделайте TitleScore bonus: лямбда возвращает
title.length() + 10. Выведите bonus.score("go")
и убедитесь, что на экране 12.