外观
Lambda表达式
1.定义
JDK8开始Java中出现的可以替换匿名内部类的技术
2.作用
1.替换匿名内部类,简化匿名内部类的写法
2.弥补Java中不能把方法(函数)作为参数的不足
3.形式
接口 接口对象 = (参数1,参数2,.....)->
4.怎么用
1.当需要使用到匿名内部类时简化匿名内部类的方法
2.构成
2.1形参列表
2.2->符
2.3方法体
5.函数接口
接口中只能有一个无方法体的抽象方法,可以有static方法,default方法
函数接口才能作为lambda表达式使用
@FunctionInterface注解
表示一下接口为函数接口,只能有一个抽象方法
6.Lambda表达式的简化
1.形参
1.1数据类型可简化(可不写数据类型,但是必须要都不写)
1.2单个参数可以不写括号
2.方法体
2.1{}可以在只有一行语句时省略,return一样
7.与匿名内部类的区别
1.所需类型不同:lambda为接口,匿名内部类可以是接口、抽象类、实体类
2.使用限制不同:lambda表达式的接口只能有一个抽象方法,匿名内部类没有限制
3.实现原理不同:匿名内部类编译后会产生.class文件,lambda表达式在运行过程中动态生成,不会产生.class文件