源码注释

注释
表示一个接收一个参数并返回一个结果的方法.这时一个功能性的接口.实际的方法时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()