java8 lambda表达式-@FunctionalInterface注解 作者:马育民 • 2022-04-08 23:29 • 阅读:10089 # 说明 Java 8为函数式接口引入了一个新注解 `@FunctionalInterface` # 作用 检查错误,当接口 **不符合 函数式接口** 时,编译器会报错 **类比:**相当于 `@override` 注解,让编译期校验覆盖父类的方法是否正确,如果代码写的正确,不加该注解也可以 # 检查以下错误 1. 该注解只能标记在 **有且仅有一个抽象方法** 的接口上。 2. JDK8接口中的 **静态方法** 和 **默认方法**,**都不算抽象方法**。 3. 接口默认继承 `java.lang.Object`,如果接口显示覆盖 `Object` 中方法,那么也 **不算抽象方法** **提示:** **该注解不是必须的**,如果一个接口符合 **函数式接口** 定义,那么加不加该注解都没有影响。加上该注解能够更好地 **让编译器进行检查**。 **注意:** 不是函数式接口,但是加上了 `@FunctionInterface`,那么编译器会报错 原文出处:http://malaoshi.top/show_1IX362OP95rQ.html