java.lang.annotation.RetentionPolicy任何人都可以清楚地解释常量SOURCE,CLASS和之间的实际区别RUNTIME吗?
java.lang.annotation.RetentionPolicy
SOURCE
CLASS
RUNTIME
我也不完全确定“保留注释”一词的含义。
RetentionPolicy.SOURCE: 编译时丢弃。这些注释在编译完成后没有任何意义,因此它们不会写入字节码。 示例:@Override,@SuppressWarnings RetentionPolicy.CLASS: 在类加载期间丢弃。在进行字节码级后处理时很有用。有点令人惊讶的是,这是默认设置。 RetentionPolicy.RUNTIME: 不要丢弃。注释应该在运行时可用于反射。例子:@Deprecated
RetentionPolicy.SOURCE: 编译时丢弃。这些注释在编译完成后没有任何意义,因此它们不会写入字节码。 示例:@Override,@SuppressWarnings
RetentionPolicy.SOURCE
@Override
@SuppressWarnings
RetentionPolicy.CLASS: 在类加载期间丢弃。在进行字节码级后处理时很有用。有点令人惊讶的是,这是默认设置。
RetentionPolicy.CLASS
RetentionPolicy.RUNTIME: 不要丢弃。注释应该在运行时可用于反射。例子:@Deprecated
RetentionPolicy.RUNTIME
@Deprecated
来源: 旧的 URL 现在已经失效了 hunter_meta 并替换为hunter-meta-2-098036。万一这失败了,我正在上传页面的图像。
图像 (右键单击并选择“在新选项卡/窗口中打开图像”)