我创建我的注释
public @interface MyAnnotation {
}
我把它放在我的测试对象的字段上
I put it on fields in my test object
public class TestObject {
@MyAnnotation
final private Outlook outlook;
@MyAnnotation
final private Temperature temperature;
...
}
现在我想用 MyAnnotation
获取所有字段的列表.
Now I want to get list of all fields with MyAnnotation
.
for(Field field : TestObject.class.getDeclaredFields())
{
if (field.isAnnotationPresent(MyAnnotation.class))
{
//do action
}
}
但似乎我的块执行操作从未执行,并且字段没有注释,因为以下代码返回 0.
But seems like my block do action is never executed, and fields has no annotation as the following code returns 0.
TestObject.class.getDeclaredField("outlook").getAnnotations().length;
有人可以帮助我并告诉我我做错了什么吗?
Is anyone can help me and tell me what i'm doing wrong?
您需要将注解标记为在运行时可用.将以下内容添加到您的注释代码中.
You need to mark the annotation as being available at runtime. Add the following to your annotation code.
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
}
这篇关于通过使用反射获取带有注释的字段列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!