函数式接口

概念

函数式接口在Java中是指:有且仅有一个抽象方法的接口
image.png

@FunctionalInterface注解(可以选择不加)

语法约束,一旦使用该注解来定义接口,编译器将会强制检查该接口是否确实有且仅有一个抽象方法,否则将会报错。需要注意的是,即使不使用该注解,只要满足函数式接口的定义,这仍然是一个函数式接口,使用起来都一样
image.png

函数式编程

Lambda的延迟执行

这段代码存在问题:无论级别是否满足要求,作为 log 方法的第二个参数,三个字符串一定会首先被拼接并传入方 法内,然后才会进行级别判断,如果级别不符合要求,那么字符串的拼接操作就白做了,存在性能浪费
image.pngimage.png

常用的函数式接口

Supplier接口

image.pngimage.png

Consumer接口

image.png

Predicate接口

默认方法and,or,negate
image.png
判断符合条件例题
image.png

Function接口

image.png
image.png