2

異なる注釈の注釈値を印刷するにはどうすればよいですか?

次の2つの注釈があります

@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Author 
{
    String name() default "--Unknown--";
    String date() default "--Unknown--";
}

@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Revision 
{
    int version() default 0;
    String modifiedBy() default "--Unknown--";
}

1 つのクラスがこの両方の注釈を使用し、このクラス内で両方の注釈の注釈値を表示したい

@Author(
        name = "Panther",
        date = "22.04.2013"
        )

@Revision(
        version = 2,
        modifiedBy = "Black", 
        )
public class AnnotationTest
{
    public static void main(String[] args)
    {
        AnnotationTest b = new AnnotationTest();
        for(Annotation a : AnnotationTest.class.getDeclaredAnnotations())
        {
            // for Author display name and date
            // for revision display version and modifiedBy
        }
    }
}

それを行う方法はありますか?

4

2 に答える 2

1

答えは非常に簡単です。

a.getClass().getAnnotation(Author.class).name();

これは一般的なものであるため、getAnnotation は要求した型を返すので、フィールドを直接取得できます。

于 2013-04-22T12:30:48.437 に答える