java.util.function 接口的基本命名规则
java.util.function 接口的命名规则
- 如果接口只处理对象,而不是基本类型,那就会用一个直截了当的名字,像 Function、Consumer和Predicate等。参数类型通过泛型添加。
- 若接口接受一个基本类型的参数,则会用名字的第一部分来表示,例如LongConsumer、DoubleFunction和Predicate等。参数类型会通过泛型添加。
- 若接口返回的是基本类型的结果,则会用 To 来表示,例如 ToLongFunction\
和 IntToLongFunction。 - 若接口返回的类型和参数类型相同,则会被命名为Operator。UnaryOperator用于表示一个参数,BinaryOperator用于表示两个参数。
- 若接口接受一个参数并返回 boolean,则会被命名为Predicate。
- 若接口接受两个不同类型的参数,则名字中会有一个Bi(比如BiPredicate)。
java.util.function的目标类型
特点 | 函数式方法命名 | 用法 |
---|---|---|
没有参数;没有返回值 | Runnable (java.lang) run() |
Runnable |
没有参数;可以返回任何类型 | Supplier get() getAs type() |
Supplier<T> BooleanSupplier IntSupplier LongSupplier DoubleSupplier |
没有参数;可以返回任何类型 | Callable (java.util.concurrent) call() |
Callable<V> |
一个参数;没有返回值 | Consumer accept() |
Consumer<T> IntConsumer LongConsumer DoubleConsumer |
两个参数的Consumer |
BiConsumer accept() |
BiConsumer<T,U> |
两个参数的Consumer ;第一个参数是引用,第二个参数是基本类型 |
Obj typeConsumer accept() |
ObjIntConsumer<T> ObjLongConsumer<T> ObjDoubleConsumer<T> |
一个参数;返回值为不同类型 | Function apply() To type & typeTo type: applyAs type() |
Function<T,R> IntFunction<R> LongFunction<R> DoubleFunction<R> ToIntFunction<T> ToLongFunction<T> ToDoubleFunction<T> IntToLongFunction IntToDoubleFunction LongToIntFunction LongToDoubleFunction DoubleToIntFunction DoubleToLongFunction |
一个参数;返回值为相同类型 | UnaryOperator apply() |
UnaryOperator<T> IntUnaryOperator LongUnaryOperator DoubleUnaryOperator |
两个相同类型的参数;返回值也是相同类型 | BinaryOperator apply() |
BinaryOperator<T> IntBinaryOperator LongBinaryOperator DoubleBinaryOperator |
两个相同类型的参数;返回int |
Comparator (java.util) compare() |
Comparator<T> |
两个参数;返回boolean |
Predicate test() |
Predicate<T> BiPredicate<T,U> IntPredicate LongPredicate DoublePredicate |
基本类型的参数;返回值也是基本类型 | typeTo typeFunction applyAs type() |
IntToLongFunction IntToDoubleFunction LongToIntFunction LongToDoubleFunction DoubleToIntFunction DoubleToLongFunction |
两个参数;不同类型 | Bi +操作名(方法名会变化) |
BiFunction<T,U,R> BiConsumer<T,U> BiPredicate<T,U> ToIntBiFunction<T,U> ToLongBiFunction<T,U> ToDoubleBiFunction<T,U> |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 技术匝记簿!
评论