<>明文>
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@Retention(RetentionPolicy.CLASS)
@interface RetentionClass {}
@Retention(RetentionPolicy.RUNTIME)
@interface RetentionRuntime {}
public static void main(String[] args) {
@RetentionClass
class C {}
assert C.class.getAnnotations().length == 0;
@RetentionRuntime
class D {}
assert D.class.getAnnotations().length == 1;
}
如果我们使用附加说明的班级的<代码>javap,我们看到<代码>保留。 CLASS annotatedsessions a 等级:
#14 = Utf8 LRetentionClass;
[...]
RuntimeInvisibleAnnotations:
0: #14()
<代码>保留。 RUNTIME annotation have a RuntimeVisible 等级:
#14 = Utf8 LRetentionRuntime;
[...]
RuntimeVisibleAnnotations:
0: #14()
因此,有关两案的资料都载于《星号》。
因此,<代码>Runtime.CLASS可用于将任意元数据与可使用密码操纵工具的类别联系起来,而不干扰可操作的行为。
Examples on IX,请你与你合作。