1、什么是函数式接口(Functional Interface)呢
(1)所谓函数式接口(Functional Interface)就是只包含一个抽象方法的声明。除了唯一的抽象方法外,函数式接口还可以包含默认方法、静态方法和Object类的方法(如equals()和toString())
(2)为了保证一个接口明确的被定义为一个函数式接口(Functional Interface),我们需要为该接口添加注解:@FunctionalInterface
。这样,一旦你添加了第二个抽象方法,编译器会立刻抛出错误提示。
@FunctionalInterface
interface Converter<F, T> {
T convert(F from);
}
上面的示例代码,即使去掉 @FunctionalInterface
也是好使的,它仅仅是一种约束而已。
(3)函数式接口的主要目的是能够使用 Lambda 表达式来实现抽象方法,针对该接口类型的所有 Lambda 表达式都会与这个抽象方法匹配。