如何在Java中获取类注释?
我创建了自己的注释类型,如下所示:
public @interface NewAnnotationType {}
并将其附加到一个类上:
@NewAnnotationTypepublic class NewClass {
public void DoSomething() {}
}
我试图通过反射来获得类注释,如下所示:
Class newClass = NewClass.class;for (Annotation annotation : newClass.getDeclaredAnnotations()) {
System.out.println(annotation.toString());
}
但它没有打印任何内容。我究竟做错了什么?
回答:
默认的保留策略是RetentionPolicy.CLASS
,默认情况下,注释信息在运行时不保留:
批注由编译器记录在类文件中,但VM在运行时无需保留。这是默认行为。
而是使用RetentionPolicy.RUNTIME
:
注释将由编译器记录在类文件中,并在运行时由VM保留,因此可以通过反射方式读取它们。
…您使用@Retention
meta注释指定:
@Retention(RetentionPolicy.RUNTIME)public @interface NewAnnotationType {
}
以上是 如何在Java中获取类注释? 的全部内容, 来源链接: utcz.com/qa/404858.html