接口 | 描述 |
---|---|
BiConsumer<T,U> |
表示接受两个输入参数并且不返回结果的操作。
|
BiFunction<T,U,R> |
表示接受两个参数并产生结果的函数。
|
BinaryOperator<T> |
表示对同一类型的两个操作数的操作,产生与操作数相同类型的结果。
|
BiPredicate<T,U> |
表示两个参数的谓词(布尔值函数)。
|
BooleanSupplier |
代表boolean
boolean 结果的供应商。
|
Consumer<T> |
表示接受单个输入参数并且不返回结果的操作。
|
DoubleBinaryOperator |
代表对两个
double 操作数的操作,并产生一个
double 结果。
|
DoubleConsumer |
表示接受单个
double 值参数的操作,不返回任何结果。
|
DoubleFunction<R> |
表示接受双值参数并产生结果的函数。
|
DoublePredicate |
表示一个
double 值参数的谓词(布尔值函数)。
|
DoubleSupplier |
代表double
double 结果的供应商。
|
DoubleToIntFunction |
表示接受双值参数并产生int值结果的函数。
|
DoubleToLongFunction |
表示接受双值参数并产生长期值结果的函数。
|
DoubleUnaryOperator |
表示对单个
double 值操作数的操作,产生一个
double 结果。
|
Function<T,R> |
表示接受一个参数并产生结果的函数。
|
IntBinaryOperator |
代表对两个
int 操作数的操作,并产生一个
int 结果。
|
IntConsumer |
表示接受单个
int 参数的操作,并且不返回任何结果。
|
IntFunction<R> |
表示一个接受int值参数并产生结果的函数。
|
IntPredicate |
表示一个
int 值参数的谓词(布尔值函数)。
|
IntSupplier |
代表int
int 结果的供应商。
|
IntToDoubleFunction |
表示接受一个int值参数并产生一个双值结果的函数。
|
IntToLongFunction |
表示接受一个int值参数并产生一个长效结果的函数。
|
IntUnaryOperator |
表示对单个
int 值操作数的操作,产生一个
int 值结果。
|
LongBinaryOperator |
代表两个
long 操作数的操作,并产生一个
long 结果。
|
LongConsumer |
表示接受单个
long 参数的操作,并且不返回任何结果。
|
LongFunction<R> |
表示接受长期参数并产生结果的函数。
|
LongPredicate |
表示一个
long 值参数的谓词(布尔值函数)。
|
LongSupplier |
代表long
long 结果的供应商。
|
LongToDoubleFunction |
表示接受长期参数并产生双重值结果的函数。
|
LongToIntFunction |
表示接受长值参数并产生int值结果的函数。
|
LongUnaryOperator |
表示对单个
long 值操作数的操作,产生一个
long 结果。
|
ObjDoubleConsumer<T> |
表示接受对象值的操作和
double 参数,并且不返回任何结果。
|
ObjIntConsumer<T> |
表示接受对象值和
int 值参数的操作,不返回任何结果。
|
ObjLongConsumer<T> |
表示接受对象值和
long 值参数的操作,不返回任何结果。
|
Predicate<T> |
表示一个参数的谓词(布尔值函数)。
|
Supplier<T> |
代表结果供应商。
|
ToDoubleBiFunction<T,U> |
表示接受两个参数并产生双值结果的函数。
|
ToDoubleFunction<T> |
表示产生双值结果的函数。
|
ToIntBiFunction<T,U> |
表示一个接受两个参数并产生一个int值结果的函数。
|
ToIntFunction<T> |
表示产生一个int值结果的函数。
|
ToLongBiFunction<T,U> |
表示接受两个参数并产生长效结果的函数。
|
ToLongFunction<T> |
表示产生长期效果的函数。
|
UnaryOperator<T> |
表示对单个操作数产生与其操作数相同类型的结果的操作。
|
// 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使用的通用功能接口,可供用户代码使用。 虽然它们不能识别lambda表达式可能适应的一整套功能形状,但它们足以满足常见要求。 为特定目的而提供的其他功能界面,如FileFilter
,在使用它们的包中定义。
该包中的接口注释为FunctionalInterface
。 该注释不是编译器将接口识别为功能接口的要求,而只是帮助捕获设计意图,并引导编译器帮助识别意外违反设计意图。
功能界面通常表示抽象概念,如函数,动作或谓词。 在记录功能界面或引用类型为功能接口的变量时,通常直接引用这些抽象概念,例如使用“该函数”代替“该对象表示的函数”。 当API方法被称为以这种方式接受或返回功能界面时,例如“将所提供的功能应用于...”,这被理解为对实现适当功能界面的对象的非空引用,除非明确指定潜在的无效。
该包中的功能接口遵循可扩展的命名约定,如下所示:
Function
(一元函数从T
至R
), Consumer
(一元函数从T
至void
), Predicate
(一元函数从T
至boolean
),和Supplier
(nilary函数R
)。 BiFunction
(二进制函数从T
和U
到R
)。 UnaryOperator
(扩展Function
)和BinaryOperator
(扩展BiFunction
)。 ToXxx
,如ToIntFunction
所示 。 否则,类型参数是专门从左到右的,如DoubleConsumer
或ObjIntConsumer
。 (类型前缀Obj
用于表示我们不想专门化此参数,但要转到下一个参数,如ObjIntConsumer
所示 )。这些方案可以组合,如IntToDoubleFunction
。 ObjIntConsumer
所示 )。 FunctionalInterface