如何在Java中获取类注释?

我创建了自己的注释类型,如下所示:

public @interface NewAnnotationType {}

并将其附加到一个类上:

@NewAnnotationType

public 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保留,因此可以通过反射方式读取它们。

…您使用@Retentionmeta注释指定:

@Retention(RetentionPolicy.RUNTIME)

public @interface NewAnnotationType {

}

以上是 如何在Java中获取类注释? 的全部内容, 来源链接: utcz.com/qa/404858.html

回到顶部