Function
Функция, которая принимает значение типа `T` и возвращает значение типа `R`.
Доступно с: Java 8
Синтаксис
@FunctionalInterface
public interface Function<T, R> {
R apply(T t);
}Примеры
Вызов и композиция:
void main() {
Function<String, Integer> length = String::length;
Function<Integer, Integer> doubled = n -> n * 2;
IO.println(length.apply("hello"));
IO.println(length.andThen(doubled).apply("hello"));
}Результат:
5
10Примечания
andThen(g) выполняет сначала эту функцию, потом g; compose(g) — наоборот. Function.identity() возвращает аргумент без изменений. Для примитивов есть специализированные версии без упаковки: IntFunction, ToIntFunction, IntUnaryOperator.
См. также
- BiFunction — Функция двух аргументов.
- UnaryOperator — Функция, у которой аргумент и результат одного типа.
- Stream.map() — Преобразует каждый элемент потока.
- -> (lambda) — Лямбда-выражение — короткая запись функции, которую можно передать как значение.
Вопросы и ответы по теме
В учебнике
- Функциональные интерфейсы — Функциональные интерфейсы в Java: аннотация @FunctionalInterface, стандартные Function, Predicate, Consumer, Supplier и их комбинирование.