Lambda表达式

函数式编程思想

new Thread(() -> {
    System.out.println("线程启动了");
}).start();

组成Lambda表达式三要素:形式参数、箭头、代码块

格式:(形式参数)->(代码块)

使用Lambda表达式前提:1)有一个接口;2)接口中有且仅有一个抽象方法

Lambda简洁模式:

  • 参数类型可以省略,多个参数情况下不能只省略一个参数类型
  • 参数有且只有一个,可以省略小括号
  • 如果代码块只有一条,可以省略大括号和分号,如果有return,return也要省略

Lambda表达式注意事项:

  • 有接口,接口中有且仅有一个抽象方法
  • 使用Lambda必须有上下文环境,才能推导出Lambda对应接口

Lambda和匿名内部类区别:

  • Lambda只能搞接口
  • Lambda不能处理接口中有两个方法的情况
  • 实现原理不同,匿名内部类编译后会产生一个单独的.class字节码文件