函数式接口 | 函数描述符 | 原始类型特化 |
Predicate<T> | T->boolean | IntPredicate,LongPredicate, DoublePredicate |
Consumer<T> | T->void | IntConsumer,LongConsumer, DoubleConsumer |
Function<T,R> | T->R | IntFunction, |
IntToDoubleFunction, | ||
IntToLongFunction, | ||
LongFunction, | ||
LongToDoubleFunction, | ||
LongToIntFunction, | ||
DoubleFunction, | ||
ToIntFunction, | ||
ToDoubleFunction, | ||
ToLongFunction | ||
Supplier<T> | ()->T | BooleanSupplier,IntSupplier, LongSupplier, |
DoubleSupplier | ||
UnaryOperator<T> | T->T | IntUnaryOperator, |
LongUnaryOperator, | ||
DoubleUnaryOperator | ||
BinaryOperator<T> | (T,T)->T | IntBinaryOperator, |
LongBinaryOperator, | ||
DoubleBinaryOperator | ||
BiPredicate<L,R> | (L,R)->boolean | |
BiConsumer<T,U> | (T,U)->void | ObjIntConsumer<T>, |
ObjLongConsumer<T>, | ||
ObjDoubleConsumer<T> | ||
BiFunction<T,U,R> | (T,U)->R | ToIntBiFunction<T,U>, |
ToLongBiFunction<T,U>, | ||
ToDoubleBiFunction<T,U> |
补充:
使用案例 | Lambda 的例子 | 对应的函数式接口 |
布尔表达式 | (List list) -> list.isEmpty() | Predicate<list> |
创建对象 | () -> new Apple(10) | Supplier<Apple> |
消费一个对象 | (Apple a) -> System.out.println(a.getWeight()) | Consumer<Apple> |
从一个对象中 选择/提取 | (String s) -> s.length() | Function<string, integer="">或 ToIntFunction |
合并两个值 | (int a, int b) -> a * b | IntBinaryOperator |
比较两个对象 | (Apple a1, Apple a2) -> a1.getWeight().compareTo(a2.getWeight()) | Comparator或 BiFunction<apple, apple,="" integer=""> 或 ToIntBiFunction<apple, apple=""> |