Function 接口 源码

源码注释

注释

表示一个接收一个参数并返回一个结果的方法.这时一个功能性的接口.实际的方法时apply(). 


抽象方法apply()

接收参数,执行apply中的方法,返回对应参数.一般不会单独实现一个实例,该接口的使用更多的是lambda表达式,如在使用Optional.map()

时的场景.

ps,创建一个function用于计算立方
Optional.map()中使用lambda代替function接口

这里Optional是一个用于存放null或非null的值的容器,map()方法接收一个Function接口,当Optional中的值不为null时,将值传入Function.apply()并返回调用结果.


compose()
andThen()

compose(),andThen()都是接收一个Function参数,返回一个新的组合的Function,但它们之间在调用apply()的顺序上有一点区别,compose()会先调用参数中的apply(),而andThen则会在调用完自己的apply()再调用参数中的.如下面例子

如下是compose和andThen的区别
运行结果

从结果中可以看到,compose()会先调用before然后再调用function所以结果是(i+1)*(i+1)*(i+1)=8.

而andThen则是相反的,先调用before,再调用function,结果是i*i*i+1 = 2.

identity()是将参数返回

identity()

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容