Java-Lambda

1. 函数式接口

  函数式接口可以包含多个默认方法、类方法,但是只能有一个抽象方法。

  Lambda表达式的目标类型是函数式接口。

  java.util.function包下,定义了大量的函数式接口

2. 方法引用和构造器引用

  如果Lambda表达式的代码块只有一条语句,程序就可以省略Lambda表达式中代码块的花括号;而且,还可以在代码块中使用方法引用和构造器引用。

3. Lambda表达式与匿名类

  1. 相同点
    1. 在代码块中,可以直接访问“effective final”局部变量,以及外部类的类变量和实例变量
    2. 他们创建的对象,都可以访问继承的默认方法。
  2. 区别
    1. Lambda只能为函数式接口创建实例
    2. Lambda代码块中,不允许调用接口定义的默认方法

4. 使用Lambda表达式调用Arrays的类方法

   Arrays类的有些方法需要Comparator、XxxOperator、XxxFunction等接口实例,这些接口都是函数式接口。

原文地址:https://www.cnblogs.com/zhouj-happy/p/5841118.html