本文介绍了如何获取类注解的java吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我已经创建了自己的注释类型是这样的:
I have created my own annotation type like this:
public @interface NewAnnotationType {}
和它连接到一个类:
@NewAnnotationType
public class NewClass {
public void DoSomething() {}
}
和我想通过这样的反射来获取类注解:
and I tried to get the class annotation via reflection like this :
Class newClass = NewClass.class;
for (Annotation annotation : newClass.getDeclaredAnnotations()) {
System.out.println(annotation.toString());
}
但它不打印任何东西。我在做什么错了?
but it's not printing anything. What am I doing wrong?
推荐答案
默认保留策略是<$c$c>RetentionPolicy.CLASS$c$c>这意味着,在默认情况下,注释信息在运行时没有保留:
The default retention policy is RetentionPolicy.CLASS
which means that, by default, annotation information is not retained at runtime:
注解是要记录在由编译器在类文件中,但不一定由VM在运行时被保留。这是默认的行为。
相反,使用<$c$c>RetentionPolicy.RUNTIME$c$c>:
注解要被记录在由编译器的类文件,并在运行时由VM保留,所以它们可以被反射性地读取。
...您指定使用:
...which you specify using the @Retention
meta-annotation:
@Retention(RetentionPolicy.RUNTIME)
public @interface NewAnnotationType {
}
这篇关于如何获取类注解的java吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!