Java 8为我们前面所说的函数式接口带来了一个专门的版本,以便在输入和输出都是原始类型时避免自动装箱的操作。使用IntPredicate就避免了对值1000进行
装箱操作,但要是用Predicate就会把参数1000装箱到一个Integer对象中:
一般来说,针对专门的输入参数类型的函数式接口的名称都要加上对应的原始类型前缀,比
如DoublePredicate、IntConsumer、LongBinaryOperator、IntFunction等。Function
接口还有针对输出参数类型的变种:ToIntFunction、IntToDoubleFunction等。
Java 8中的常用函数式接口
函数式接口 函数描述符 原始类型特化
Predicate T->boolean
Consumer T->void
Function<T,R> T->R IntFunction,
DoublePredicate
IntConsumer,LongConsumer,
DoubleConsumer
IntPredicate,LongPredicate,
IntToDoubleFunction,
IntToLongFunction,
LongFunction,
LongToDoubleFunction,
LongToIntFunction,
DoubleFunction,
ToIntFunction,
ToDoubleFunction,
ToLongFunction