Lambda表达式
Lambda表达式的核心思想是将方法体当做参数来使用,称为函数式编程。
如果你把世界拆分成类,对象你就得到了面向对象。
如果你把世界拆分成事物和事物之间的关系你就得到了函数式。
(Apple a1, Apple a2) -> a1.getWeight().compareTo(a2.getWeight());
lambda参数 箭头 Lambda主体
一、函数式接口
在函数式接口上使用Lambda表达式。函数式接口就是只定义一个抽象方法的接口。接口现在可以拥有多个默认接口,只要接口只定义一个抽象方法,它就是 函数式接口。
Lambda表达式允许你直接以内联的形式为函数式接口的抽象方法提供实现,并把整个表达式作为函数式接口的实例(具体说来,是函数式接口一个具体实现的实例)。
@FunctionalInterface 注解
函数式接口带有@FunctionalInterface的标注。这个标注用于表示该接口会设计成一个函数式接口。如果你用@FunctionalInterface定义了一个接口,而它却不是函数式接口
的话,编译器将报错
函数式接口
我们用一个最常用的函数式接口作为本小点的演示:
Function函数式接口
@FunctionalInterface
public interface Function<T, R> {
R apply(T t);
<