java - 为什么@FunctionalInterface 有运行时保留?

标签 java java-8

Said in Javadoc :

If a type is annotated with this annotation type, compilers are required to generate an error message unless ...

为什么 SOURCECLASS 不够用,比如 @Override

最佳答案

@FunctionalInterface 注释有两个目的。关于编译器和它必须生成的错误,确实有一个 SOURCE RetentionPolicy 就足够了,因为在这方面它只影响用 @ 注释的类功能接口(interface)

然而,它还有第二个目的,记录这样一个事实,即使用此 interface 作为功能接口(interface)确实是有意的,并且以这种方式使用它的可能性不仅仅是巧合,例如Comparable 不打算以这种方式使用。

因此它被注解为@Documented,并具有最大的RetentionPolicy来实现第二个目的。

关于java - 为什么@FunctionalInterface 有运行时保留?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48262298/

相关文章:

java - 如何在每个操作系统上运行 JavaFX 项目

Java - 我需要更新 Swing GUI 程序中的 JTextFields

java - 当每个对象可以分为多个组时如何对对象进行分组?

java - orElseThrow 可选对象无法解析

java - 检查forEach lambda循环Java 8中List的范围

java - 解码 XML Java JAXB

java - 如何在Eclipse程序中重定向输入和输出

java - GWT 垃圾收集

java - 是否可以使用 Streams.intRange 函数?

java - 调用 supplyAsync 时尝试并捕获