0

私はクラステストを持っています:

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 クラスのすべてのフィールドを反復せずに、注釈参照を直接取得しますか?

4

0 に答える 0