我试图从JDK理解@Functional接口,无法理解为什么他们没有主体就创建了这个注释?
我不明白在类描述中使用@FunctionalInterface与不使用之间有什么区别?这个没有参数的注释提供了什么?
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface FunctionalInterface {}
答案 0 :(得分:3)
如果添加它,那么在不破坏您的functional interface的情况下,其他人将无法添加更多方法,并且会出现编译时错误:
Invalid '@FunctionalInterface' annotation; MyInterface is not a functional interface
如果使用该注释类型对类型进行注释,则编译器必须生成错误消息,除非:
- 该类型是接口类型,而不是注释类型,枚举或类。
- 带注释的类型满足功能接口的要求。