-
Lambda表达式
需求场景:动态过滤对象属性。如下四个图片:
上图代码实现通过接口实现类来过滤传入的list数据,该模式为策略设计模式。
还可以使用匿名内部类完成功能
流式编程StreamAPI
2.Lambda基础语法
Java8中引入一个新的操作符“->”,该操作符称为箭头操作符或者Lambda操作符
箭头左侧是接口抽象方法的参数列表,右侧是接口的实现(Lambda体)。
语法1:无参数,无返回值
()->System.out.println(“Hello world”);语法2:一个参数,无返回值 (x)->System.out.println(x);![(https://img-blog.csdnimg.cn/21770a67cff842cf8e10bc8f9111d2b0.png) ![在这里插入图片描述](https://img-blog.csdnimg.cn/57d16c70c72d4029a6d416633e54e6f2.png) 语法3:一个参数,小括号可以省略不写 ![在这里插入图片描述](https://img-blog.csdnimg.cn/892bbeada6e447e884e4e261631e47d6.png) 语法4:多个参数,Lambda体有多条语句则使用{}括起来,如果只有一条语句可以省略{}和return
语法5:Lambda参数列表中可以不用写参数的数据类型,JVM编译器可以通过上下文进行类型推断。
- 函数式接口
函数式接口:有且仅有一个抽象方法的接口。
可以使用@FunctionalInterface注解进行修饰,如果没有事会用该注解修饰本身只有一个抽象方法也是函数式接口
在这里插入图片描述