【问题标题】:What is the use of RetentionPolicy.CLASS and RetentionPolicy.SOURCE?RetentionPolicy.CLASS 和 RetentionPolicy.SOURCE 有什么用?
【发布时间】:2016-06-24 20:41:09
【问题描述】:

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

来自 Java 文档:

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

  • 在哪种情况下,我们将作为开发人员进行此操作?

SOURCE:注释将被编译器丢弃。

  • 在哪种情况下,我们将作为开发人员进行此操作?

【问题讨论】:

标签: java annotations


【解决方案1】:

RetentionPolicy 用于控制注解的 Lifetime 和可见性

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

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

根据用例使用两个注释,这样 .class 文件不会被不必要地污染。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-13
    • 2019-11-24
    • 2011-03-23
    • 2018-10-01
    • 2012-08-24
    • 2016-11-12
    • 1970-01-01
    相关资源
    最近更新 更多