Said in Javadoc:
如果使用此注释类型对类型进行了注释,编译器将
需要生成错误消息,除非…
为什么SOURCE
或CLASS
还不够,比如@Override
。
最佳答案
@FunctionalInterface
注释有两个用途。关于编译器和它必须生成的错误,有一个SOURCE
RetentionPolicy
就足够了,因为在这方面,它只影响用@FunctionalInterface
注释的类。
然而,它还有第二个目的,即证明使用这个interface
作为一个功能接口确实是有意的,并且这样使用它的可能性不仅仅是与不打算这样使用的,例如Comparable
的巧合。
因此,用@Documented
注释,并具有最大的RetentionPolicy
以满足第二目的。
关于java - 为什么@FunctionalInterface保留RUNTIME?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48262298/