Java8 新特性
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201029155141451.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3p4ZmhhaGFoYQ==,size_16,color_FFFFFF,t_70#pic_center)
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020102915525219.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3p4ZmhhaGFoYQ==,size_16,color_FFFFFF,t_70#pic_center)
Lambda表达式
语法格式:
lambda表达式的本质:作为函数式接口的实例
Lambda表达式的使用
总结:
左边:Lambda形参列表的参数类型可省略(类型推断);如果形参列表只有一个参数,其()可以省略
右边:Lambda体应该使用一对{}包裹;如果Lambda体只有一条执行语句(可能是return语句),则{}和return可以省略
eg1:无参无返回值
原:
用lambda表达式写:
eg2:Lambda需要一个参数,无返回值
语法格式3:基于类型推断,数据类型可以省略
语法格式4:Lambda只需要一个参数时,小括号可以省
语法格式5:Lambda需要两个或以上的参数,多条执行语句,并且可以有返回值
语法格式6:当lambda体只有一条,return与大括号若有,都可以省略
函数式接口
- 如果一个接口只声明了一个抽象方法,则此接口就称为函数式接口
- 可以在接口上使用
@FunctionalInterface注解
,检查此接口是否是一个函数式接口 - java.util.function包下定义了Java8的丰富的函数式接口
eg1:消费型接口
eg2:断定型接口