保持に加えて、JDK 5が提供する他の3つの注釈、すなわちターゲット、継承、文書化されています。
ターゲットターゲットは、ターゲット注釈が使用される場所です。これは、使用されている注釈のタイミング、つまり注釈が適用されるプログラム要素のタイプを定義します。ターゲットメタアノテーションが注釈型宣言に存在しない場合、宣言されたタイプは任意のプログラム要素で使用できます。このようなメタノットが存在する場合、コンパイラは指定された使用制限を実施します。
ターゲットは次のように定義されています。
@documented@retention(retentionPolicy.runtime)@target(elementType.annotation_type)public@interfaceターゲット{elementType [] value();}ご覧のとおり、ターゲットには値の属性が1つしかなく、そのタイプは列挙型ElementTypeです。 ElementType宣言は次のとおりです。
public enum elementType { /**アノテーションは、クラス、インターフェイス(注釈タイプを含む)または列挙宣言* /**フィールド宣言(列定数を含む)* /**メソッド宣言* /方法で使用できます。注釈タイプ宣言 */ annotation_type、/ **パッケージ宣言 */パッケージ}文書化された注釈は、Javadocを作成するときに注釈情報がドキュメントに追加されるかどうかを示します。宣言時に注釈が@documentedを使用している場合、Javadocを作成するときに注釈情報がJavadocに追加されます。注釈ステートメントは次のとおりです。
@documented@retention(value = runtime)@target(value = annotation_type)//このアノテーションは、注釈を宣言するときにのみ使用できることを示しています。
継承された注釈もメタアノテーションであり、宣言は次のとおりです。
@documented@retention(value = runtime)@target(value = annotation_type)public @interface enselited {}継承された注釈は、注釈がサブクラスによって継承されるかどうかを示し、デフォルトは継承されません。注釈が宣言されると、@inheritedアノテーションが使用されると、注釈は注釈を使用してクラスのサブクラスによって継承されます。