通过字段的初始值获取注释

时间:2012-10-22 13:59:52

标签: java reflection annotations

我有一堂课测试:

public class Test 
{
    @Anno1(Anno1Param = "bla1")
    @Anno2(Anno2Param = "bla1")
    public static final String TEST1 = "test1";

    @Anno1(Anno1Param = "bla2")
    @Anno2(Anno2Param = "bla2")
    @Anno3(Anno3Param = "bla2")
    public static final String TEST2 = "test2";

    @Anno3(Anno3Param = "bla3")
    public static final String TEST3 = "test3";

    @Anno1(Anno1Param = "bla4")
    public static final String TEST4 = "test4";
}

现在,给定字段值,我想检索与之关联的注释。我现在能做到的唯一方法是:

 for (Field field : Test.class.getFields()) {
     if(field.get(this).equals("test4")) {
         Annotation a = field.getAnnotation(Anno1.class);
         ......
     }
 }

在java反射中有没有办法可以做类似的事情:

getAnnotationByFieldValue("test4")

以便给定字段值" test4",而不遍历Test类中的所有字段并直接检索注释引用?

0 个答案:

没有答案