Spec-Zone.ru › OpenJDK 25

Пакет java.util.function

package java.util.function
Функциональные интерфейсы предоставляют целевые типы для лямбда-выражений и ссылок на методы. Каждый функциональный интерфейс имеет один абстрактный метод, называемый функциональным методом этого функционального интерфейса; типы параметров и возвращаемого значения лямбда-выражения сопоставляются с ним или адаптируются к нему. Функциональные интерфейсы могут предоставлять целевой тип в различных контекстах, например в контексте присваивания, вызова метода или приведения типа:
    // Assignment context
    Predicate<String> p = String::isEmpty;

    // Method invocation context
    stream.filter(e -> e.getSize() > 10)...

    // Cast context
    stream.map((ToIntFunction) e -> e.getSize())...

Интерфейсы этого пакета — функциональные интерфейсы общего назначения, используемые JDK и доступные также для использования в пользовательском коде. Хотя они не охватывают полный набор форм функций, к которым можно адаптировать лямбда-выражения, их достаточно для распространённых задач. Другие функциональные интерфейсы, предназначенные для конкретных целей, например FileFilter, определены в пакетах, где они используются.

Интерфейсы этого пакета аннотированы с помощью FunctionalInterface. Эта аннотация не обязательна для того, чтобы компилятор распознал интерфейс как функциональный, а лишь помогает зафиксировать замысел разработчика и привлечь компилятор к выявлению случайных нарушений этого замысла.

Функциональные интерфейсы часто представляют такие абстрактные понятия, как функции, действия или предикаты. При документировании функциональных интерфейсов или упоминании переменных, типизированных функциональными интерфейсами, принято ссылаться непосредственно на эти абстрактные понятия, например использовать выражение «эта функция» вместо «функция, представленная этим объектом». Если говорится, что метод API принимает или возвращает функциональный интерфейс, например «применяет предоставленную функцию к...», подразумевается ненулевая ссылка на объект, реализующий соответствующий функциональный интерфейс, если только возможность значения null не оговорена явно.

Для функциональных интерфейсов этого пакета используется расширяемое соглашение об именовании, описанное ниже:

  • Существует несколько основных форм функций, включая Function (унарная функция из T в R), Consumer (унарная функция из T в void), Predicate (унарная функция из T в boolean) и Supplier (функция без аргументов, возвращающая R).
  • У форм функций есть естественная арность, основанная на наиболее распространённых способах их использования. Основные формы можно изменить, добавив префикс арности, чтобы указать другую арность, например BiFunction (бинарная функция из T и U в R).
  • Существуют дополнительные производные формы функций, расширяющие основные формы, включая UnaryOperator (расширяет Function) и BinaryOperator (расширяет BiFunction).
  • Типовые параметры функциональных интерфейсов можно специализировать для примитивных типов с помощью дополнительных префиксов типов. Чтобы специализировать возвращаемый тип для типа, у которого есть и обобщённый возвращаемый тип, и обобщённые аргументы, используется префикс ToXxx, как в ToIntFunction. В остальных случаях типовые аргументы специализируются слева направо, как в DoubleConsumer или ObjIntConsumer. (Префикс типа Obj указывает, что этот параметр не нужно специализировать и следует перейти к следующему параметру, как в ObjIntConsumer.) Эти схемы можно комбинировать, как в IntToDoubleFunction.
  • Если для всех аргументов заданы префиксы специализации, префикс арности можно опустить (как в ObjIntConsumer).
Начиная с:
1.8
См. также:
  • FunctionalInterface
Пакет Описание
java.util
Содержит платформу коллекций, некоторые классы поддержки интернационализации, загрузчик служб, свойства, средства генерации случайных чисел, классы для разбора и сканирования строк, кодирования и декодирования Base64, битовый массив и несколько различных классов-утилит.
Класс Описание
BiConsumer<T,U>
Представляет операцию, принимающую два входных аргумента и не возвращающую результат.
BiFunction<T,U,R>
Представляет функцию, принимающую два аргумента и возвращающую результат.
BinaryOperator<T>
Представляет операцию над двумя операндами одного типа, возвращающую результат того же типа, что и операнды.
BiPredicate<T,U>
Представляет предикат (функцию, возвращающую логическое значение) с двумя аргументами.
BooleanSupplier
Представляет поставщик результатов типа boolean.
Consumer<T>
Представляет операцию, принимающую один входной аргумент и не возвращающую результат.
DoubleBinaryOperator
Представляет операцию над двумя операндами типа double, возвращающую результат типа double.
DoubleConsumer
Представляет операцию, принимающую один аргумент типа double и не возвращающую результат.
DoubleFunction<R>
Представляет функцию, принимающую аргумент типа double и возвращающую результат.
DoublePredicate
Представляет предикат (функцию, возвращающую логическое значение) с одним аргументом типа double.
DoubleSupplier
Представляет поставщик результатов типа double.
DoubleToIntFunction
Представляет функцию, принимающую аргумент типа double и возвращающую результат типа int.
DoubleToLongFunction
Представляет функцию, принимающую аргумент типа double и возвращающую результат типа long.
DoubleUnaryOperator
Представляет операцию над одним операндом типа double, возвращающую результат типа double.
Function<T,R>
Представляет функцию, принимающую один аргумент и возвращающую результат.
IntBinaryOperator
Представляет операцию над двумя операндами типа int, возвращающую результат типа int.
IntConsumer
Представляет операцию, принимающую один аргумент типа int и не возвращающую результат.
IntFunction<R>
Представляет функцию, принимающую аргумент типа int и возвращающую результат.
IntPredicate
Представляет предикат (функцию, возвращающую логическое значение) с одним аргументом типа int.
IntSupplier
Представляет поставщик результатов типа int.
IntToDoubleFunction
Представляет функцию, принимающую аргумент типа int и возвращающую результат типа double.
IntToLongFunction
Представляет функцию, принимающую аргумент типа int и возвращающую результат типа long.
IntUnaryOperator
Представляет операцию над одним операндом типа int, возвращающую результат типа int.
LongBinaryOperator
Представляет операцию над двумя операндами типа long, возвращающую результат типа long.
LongConsumer
Представляет операцию, принимающую один аргумент типа long и не возвращающую результат.
LongFunction<R>
Представляет функцию, принимающую аргумент типа long и возвращающую результат.
LongPredicate
Представляет предикат (функцию, возвращающую логическое значение) с одним аргументом типа long.
LongSupplier
Представляет поставщик результатов типа long.
LongToDoubleFunction
Представляет функцию, принимающую аргумент типа long и возвращающую результат типа double.
LongToIntFunction
Представляет функцию, принимающую аргумент типа long и возвращающую результат типа int.
LongUnaryOperator
Представляет операцию над одним операндом типа long, возвращающую результат типа long.
ObjDoubleConsumer<T>
Представляет операцию, принимающую аргумент типа объект и аргумент типа double, не возвращая результата.
ObjIntConsumer<T>
Представляет операцию, принимающую аргумент типа объект и аргумент типа int, не возвращая результата.
ObjLongConsumer<T>
Представляет операцию, принимающую аргумент типа объект и аргумент типа long, не возвращая результата.
Predicate<T>
Представляет предикат (функцию, возвращающую логическое значение) с одним аргументом.
Supplier<T>
Представляет поставщик результатов.
ToDoubleBiFunction<T,U>
Представляет функцию, принимающую два аргумента и возвращающую результат типа double.
ToDoubleFunction<T>
Представляет функцию, возвращающую результат типа double.
ToIntBiFunction<T,U>
Представляет функцию, принимающую два аргумента и возвращающую результат типа int.
ToIntFunction<T>
Представляет функцию, возвращающую результат типа int.
ToLongBiFunction<T,U>
Представляет функцию, принимающую два аргумента и возвращающую результат типа long.
ToLongFunction<T>
Представляет функцию, возвращающую результат типа long.
UnaryOperator<T>
Представляет операцию над одним операндом, возвращающую результат того же типа, что и операнд.

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/function/package-summary.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API