参考资料;
https://www.oracle.com/java/technologies/javase/8-whats-new.html
https://docs.oracle.com/javase/tutorial/java/javaOO/methodreferences.html
https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html
https://docs.oracle.com/javase/8/docs/api/java/lang/FunctionalInterface.html
a、Lambda 表达式:Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中
语法:
(parameters) -> expression
或
(parameters) ->{ statements; }
b、方法引用method references
方法引用通过方法的名字来指向一个方法。
方法引用可以使语言的构造更紧凑简洁,减少冗余代码。
方法引用使用一对冒号 :: 。
c、函数式接口@interface FunctionalInterface
函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。
三者的关系:
1、lambda无法单独出现,它需要一个函数式接口,lambda表达式方法体其实就是函数接口的实现.
2、方法引用是紧凑,易于阅读的lambda表达式,用于已具有名称的方法,是lambda表达式的一种简化写法。
所引用的方法是lambda表达式的方法体的实现。