Said in Javadoc
如果使用此注释类型对类型进行了注释,编译器将
需要生成错误消息,除非…
为什么SOURCECLASS还不够,比如@Override

最佳答案

@FunctionalInterface注释有两个用途。关于编译器和它必须生成的错误,有一个SOURCERetentionPolicy就足够了,因为在这方面,它只影响用@FunctionalInterface注释的类。
然而,它还有第二个目的,即证明使用这个interface作为一个功能接口确实是有意的,并且这样使用它的可能性不仅仅是与不打算这样使用的,例如Comparable的巧合。
因此,用@Documented注释,并具有最大的RetentionPolicy以满足第二目的。

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

10-10 13:15