Java Annotations - 寻找 RetentionPolicy.CLASS 的示例

2022-01-13 00:00:00 annotations java

根据 Java Annotation API:

according to Java Annotation API:

  • RetentionPolicy.CLASS注释将被记录在类文件中编译器,但不需要保留运行时的虚拟机.

  • RetentionPolicy.CLASS Annotations are to be recorded in the class file by the compiler but need not be retained by the VM at run time.

RetentionPolicy.RUNTIME注释将被记录在类文件中编译器并在运行时由 VM 保留时间,所以它们可以被阅读反思.

RetentionPolicy.RUNTIME Annotations are to be recorded in the class file by the compiler and retained by the VM at run time, so they may be read reflectively.

我正在寻找CLASS"保留政策的样本.当我们需要使用此策略而不是 RUNTIME 策略时.

I am looking for a sample of "CLASS" retention policy. when we need to use this policy instead of RUNTIME policy.

推荐答案

在我当前项目中拥有的所有大量库中.我能找到的唯一示例在 Google Guava 库中,例如 com.google.common.annotations.GwtCompatible.

Of all of the large number of libraries I have in my current project. the only examples I can find are in the Google Guava library, for example com.google.common.annotations.GwtCompatible.

不过,我不太确定他们为什么选择此保留策略 - 也许是为了工具支持,工具本身读取类文件,而不是通过反射 API.不过,我不确定我是否真的明白这种区别的意义.

I'm not really sure why they chose this retention policy, though - perhaps for tools support, where the tools read the class files themselves, rather than going through the reflection API. I'm not sure that I really see the point of this distinction, though.

相关文章