RetentionPolicy.CLASS和RetentionPolicy.SOURCE有什么用?

Raj*_*ppa 5 java annotations

RetentionPolicy.CLASS和RetentionPolicy.SOURCE的预期需求是什么.在哪个注释场景中,我们可以使用这些?我想要一些例子.

来自Java doc:

CLASS:注释将由编译器记录在类文件中,但在运行时不需要由VM保留.

  • 在哪种情况下,我们会以开发人员身份进行此操作?

SOURCE:编译器将丢弃注释.

  • 在哪种情况下,我们会以开发人员身份进行此操作?

Yur*_*ake -1

RetentionPolicy 用于控制注释的生命周期和可见性

RetentionPolicy.CLASS - 定义的注释将存储在.class文件中,但在运行时不可用。如果您根本不指定任何保留策略,则这是默认保留策略。

RetentionPolicy.SOURCE - 构建代码时,编译器将忽略定义的注释。因此,注释仅在源代码中可用,在.class文件中不可用,在运行时也不可用。

根据用例使用两个注释,以免.class文件受到不必要的污染。

如果注释由扫描代码的构建工具使用,您可以使用RetentionPolicy.SOURCE保留策略。