通用函数接口java.util.function.*[

 

【2.1.4 通用函数接口java.util.function.*   返回目录

 

为了配合λ表达式的使用,定义了一些作为形参的函数接口。java.util.function包基本覆盖了程序员对函数接口的各种需求。

1.方法的类型签名

函数的类型签名,描述方法的形参列表类型通过本方法处理后,形成返回值类型。以如下格式描述:(形参列表类型) ->返回值类型

从方法的类型签名分析,java.util.function包的核心函数接口有4个。

Ø        函数型T ->R,完成参数类型T向结果类型R的转换。核心函数接口Function

Ø        判断型T ->boolean,核心函数接口Predicate/谓词

Ø        消费型T ->void,核心函数接口Consumer

Ø        供给型void->T,核心函数接口Supplier

其他函数接口与它们类似。各种类型签名可以拓展到二元如(T, U) -> R,三元及更多元的类型签名,难以支持。

由于Java泛型采用擦除技术,Java中不可以用同一个名字定义不同类型或不同数量的参数的泛型类,即无法定义Function<T, R>、Function<T,U, R>、Function<Integer, Integer >等,而必须取不同的类型名字。

 

2.避免装箱和拆箱

 

Java泛型仅针对引用类型,如果使用Function<Integer, Integer>,会将代码中的int进行装箱,从而在性能上付出代价。java.util.function包针对基本类型的int、double和long提供支持,当输入或/和输出为基本类型时,可以避免自动装箱的操作。

核心函数接口

简化或二元拓展

基本类型

Function<T, R> ,T ->R

共25个接口

 

IntFunction<R>,int->R

LongFunction<R>

DoubleFunction<R>

IntToDoubleFunction, int->double

IntToLongFunction

LongToDoubleFunction,

LongToIntFunction,

DoubleToIntFunction

DoubleToLongFunction

ToIntFunction<T>, T->int

ToDoubleFunction<T>,

ToLongFunction<T>

BiFunction<T,U,R> ,(T,U) ->R

ToIntBiFu

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值