See: Description
boolean-valued results.
double-valued operands and producing a
double-valued result.
double-valued argument and returns no result.
double-valued argument.
double-valued results.
double-valued operand that produces a
double-valued result.
int-valued operands and producing an
int-valued result.
int-valued argument and returns no result.
int-valued argument.
int-valued results.
int-valued operand that produces an
int-valued result.
long-valued operands and producing a
long-valued result.
long-valued argument and returns no result.
long-valued argument.
long-valued results.
long-valued operand that produces a
long-valued result.
double-valued argument, and returns no result.
int-valued argument, and returns no result.
long-valued argument, and returns no result.
// Assignment context Predicate<String> p = String::isEmpty; // Method invocation context stream.filter(e -> e.getSize() > 10)... // Cast context stream.map((ToIntFunction) e -> e.getSize())...
The interfaces in this package are general purpose functional interfaces used by the JDK, and are available to be used by user code as well. While they do not identify a complete set of function shapes to which lambda expressions might be adapted, they provide enough to cover common requirements. Other functional interfaces provided for specific purposes, such as FileFilter, are defined in the packages where they are used.
The interfaces in this package are annotated with FunctionalInterface. This annotation is not a requirement for the compiler to recognize an interface as a functional interface, but merely an aid to capture design intent and enlist the help of the compiler in identifying accidental violations of design intent.
Functional interfaces often represent abstract concepts like functions, actions, or predicates. In documenting functional interfaces, or referring to variables typed as functional interfaces, it is common to refer directly to those abstract concepts, for example using "this function" instead of "the function represented by this object". When an API method is said to accept or return a functional interface in this manner, such as "applies the provided function to...", this is understood to mean a non-null reference to an object implementing the appropriate functional interface, unless potential nullity is explicitly specified.
The functional interfaces in this package follow an extensible naming convention, as follows:
Function (unary function from T to R), Consumer (unary function from T to void), Predicate (unary function from T to boolean), and Supplier (nilary function to R). BiFunction (binary function from T and U to R). UnaryOperator (extends Function) and BinaryOperator (extends BiFunction). ToXxx, as in ToIntFunction. Otherwise, type arguments are specialized left-to-right, as in DoubleConsumer or ObjIntConsumer. (The type prefix Obj is used to indicate that we don't want to specialize this parameter, but want to move on to the next parameter, as in ObjIntConsumer.) These schemes can be combined, as in IntToDoubleFunction. ObjIntConsumer). FunctionalInterface