Это передача поведения через функциональный интерфейс: в Java 8+ его реализацию удобно задавать lambda-выражением или ссылкой на метод.
Как называется возможность передать алгоритм в качестве аргумента метода в Java 8+?
Это передача поведения через функциональный интерфейс: в Java 8+ его реализацию удобно задавать lambda-выражением или ссылкой на метод.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Это передача поведения через функциональный интерфейс: в Java 8+ его реализацию удобно задавать lambda-выражением или ссылкой на метод.
Например, Predicate<T> представляет проверку, Function<T,R> — преобразование, Comparator<T> — сравнение. Метод принимает значение интерфейсного типа, а вызывающий код передаёт алгоритм, например items.sort(Comparator.comparing(User::getName)). Функциональный интерфейс имеет один абстрактный метод; default и static методы этому не мешают. До lambdas похожую задачу решали анонимными классами. Java не передаёт «голую функцию» вне типового контракта так же, как Python.