Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник Java

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 и их комбинирование.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.