java.lang.annotation.Documentedメタ・アノテーション

Documentedアノテーションがついたアノテーションは、javadoc等の文書化ツールで、その注釈情報が出力される。
これでは、なんだかよく分からないので以下の例を。


たとえば、以下のようなアノテーションがあるとする。

import java.lang.annotation.Documented;
@Documtented
public @interface Author {
    String value();
}

こいつを使うクラスは以下のとおり。

@Author("Suzuki Hanako")
public class Hoge {
}

このHogeクラスのJavadocを作ると以下のように、クラスの情報として、@Author〜が出力される。


@Author(value="Suzuki Hanako")
public class Hogeextends java.lang.Object
これは、Authorアノテーションが、Documentedアノテーションにより修飾されているため出力されている。
Authorアノテーションから@Documentedを消すとjavadocには何も出力されなくなる。