Go to the home page  / Java  / Функциональное программирование  / Функциональные интерфейсы  / Вызов сохраненной лямбды

Вызов сохраненной лямбды

Igor Lazarevsky, 2022.02.05 21:27

Если мы сохранили лямбду в переменной, с типом какого-то функционального интерфейса

Supplier<String> s = () -> "hello";

И сам интерфейс определен так

@FunctionalInterface
public interface Supplier<T> {

    /**
     * Gets a result.
     *
     * @return a result
     */
    T get();
}

То мы видим, что в нем есть метод get(). Его-то и нужно использовать, чтобы заставить лямбду работать :)

System.out.println(s.get());

Выведет

hello

Резюме

Сохранить-то лямбду мы можем в переменной с самыми разными функциональными интерфейсами. Но чтобы ее использовать, придется знать, как именно называется метод в этом интерфейсе.

Это особенности "низкоуровневой" реализации функционального программирования в Java.

Igor Lazarevsky, 2022.02.05 21:30