理解

  1. 只包含一个方法的接口,称之为函数式接口
  2. 可以通过 Lambda 表达式来创建该接口的对象,如果Lambda表达式需要抛出一个异常,那么该异常在目标接口的抽象方法上也需要进行声明。
  3. 我们可以在接口上使用@FunctionalInterface注解,来对接口进行一个检查,判断它是否是一个函数式接口。
  4. java.util.function包下定义了 Java 8 中丰富的函数式接口

image.png

如果定义了多个抽象方法,由于注解的检查作用,就会报错
image.png

内置的函数式接口

消费型接口 Consumer

抽象方法:void accept(T t)
image.png

供给型接口 Supplier

抽象方法:T get()

函数式接口 Function(T,R)

抽象方法:R apply(T t)

断定型接口 Predicate

抽象方法:boolean test(T t)
image.png

常见的内置函数式接口

image.png