Lambda表达式
函数式编程思想
new Thread(() -> {
System.out.println("线程启动了");
}).start();
组成Lambda表达式三要素:形式参数、箭头、代码块
格式:(形式参数)->(代码块)
使用Lambda表达式前提:1)有一个接口;2)接口中有且仅有一个抽象方法
Lambda简洁模式:
- 参数类型可以省略,多个参数情况下不能只省略一个参数类型
- 参数有且只有一个,可以省略小括号
- 如果代码块只有一条,可以省略大括号和分号,如果有return,return也要省略
Lambda表达式注意事项:
- 有接口,接口中有且仅有一个抽象方法
- 使用Lambda必须有上下文环境,才能推导出Lambda对应接口
Lambda和匿名内部类区别:
- Lambda只能搞接口
- Lambda不能处理接口中有两个方法的情况
- 实现原理不同,匿名内部类编译后会产生一个单独的.class字节码文件