Java8中的常用函数式接口

函数式接口 函数描述符 原始类型特化
Predicate T -> boolean IntPredicate
LongPredicate
DoublePredicate
Consumer T -> void IntConsumer
LongConsumer
DoubleConsumer
Function T -> R IntFunction
IntToDoubleFunction
IntToLongFunction
LongFunction
LongToDoubleFunction
LongToIntFunction
DoubleFunction
ToIntFunction
ToDoubleFunction
ToLongFunction
Supplier () -> T BooleanSupplier
IntSupplier
LongSupplier
DoubleSupplier
UnaryOperator T -> T IntUnaryOperator
LongUnaryOperator
DoubleUnaryOperator
BinaryOperator (T, T) -> T IntBinaryOperator
LongBinaryOperator
DoubleBinaryOperator
BiPredicate (L, R) -> boolean
BiConsumer (T, U) -> void ObjIntConsumer
ObjLongConsumer
ObjDoubleConsumer
BiFunction (T, U) -> R ToIntBiFunction
ToLongBiFunction
ToDoubleBiFunction

总结

名称 一元接口 说明 二元接口 说明
一般函数 Function
(T -> R)
一元函数
抽象apply方法
BiFunction
((T, U) -> R)
二元函数
抽象apply方法
算子函数
(输入输出同类型)
UnaryOperator
(T -> T)
一元算子
抽象apply方法
BinaryOperatory
((T, T) -> T)
二元算子
抽象apply方法
谓词函数
(输出Boolean)
Predicate
(T -> Boolean)
一元谓词
抽象test方法
BiPredicate
((T, R) -> Boolean)
二元谓词
抽象test方法
消费者
(无返回值)
Consumer
(T -> void)
一元消费者函数
抽象accept方法
BiConsumer
((T, R) -> void)
二元消费者函数
抽象accept方法
供应者
(无参数,有返回值)
Supplier
(() -> T)
供应者函数
抽象get方法

自定义函数式接口
比如(T, R, U) -> Boolean 新建一个接口文件然后下入以下代码即可。

@FunctionInterface
publif interface MyFunction{
    Boolean test(T t, R r, U u);
}

你可能感兴趣的:(Java8中的常用函数式接口)