Java API中有的接口只有一个方法大多數回调接口都拥有这个特征:比如Callable接口和Comparator接口。由此定义了一个统一的规范:
-
- 使用该注解后接口中只能存在一个抽象方法的接口,否则編译报错(lambda默认调用的方法)
- 接口中允许存在非抽象的静态方法和默认方法。(可以对接口进行扩展使接口功能不那么单一)
- 接口中尣许定义与Object类同名的抽象方法。(暂时不知道有啥用)
注意:@FunctionalInterface只是一个规范标记,代码编译时会去检查
-
jdk默认提供的一些函数式接口:
为了方便使用lambda,jdk提供了一些通用的函数式接口,以下列出一些常用接口:
-
-
Consumer ——接收T对象不返回值
-
-
Supplier——提供T对象(例如工厂),不接收值
-
-
-
参数类型JVM編译时可以通过上下文去获取。
? 只有一个参数的时候()可以省略,除非需要声明对象时不能省略。
-
-