モジュール java.compiler
パッケージ javax.lang.model

インタフェースAnnotatedConstruct

既知のすべてのサブインタフェース:
ArrayType, DeclaredType, Element, ErrorType, ExecutableElement, ExecutableType, IntersectionType, ModuleElement, NoType, NullType, PackageElement, Parameterizable, PrimitiveType, QualifiedNameable, RecordComponentElement, ReferenceType, TypeElement, TypeMirror, TypeParameterElement, TypeVariable, UnionType, VariableElement, WildcardType

public interface AnnotatedConstruct
注釈付け可能なコンストラクトを表します。 コンストラクトは要素またはのどちらかです。 要素の注釈は宣言に置かれ、型の注釈は型名の特定の使用に置かれます。 「Java言語仕様」セクション9.7.4で定義されているように、要素の注釈は「宣言注釈」で、型の注釈は「タイプ注釈」です。 「直接存在」present「間接的に存在」および「関連」という用語は、このインタフェースのメソッドによって返される注釈(宣言注釈または型注釈)を正確に表すために、このインタフェース全体で使用されます。

次の定義では、注釈Aに注釈インタフェースAIがあります。 AIが繰返し可能な注釈インタフェースの場合、含まれる注釈のタイプはAICです。

次のいずれかが成り立つ場合に、注釈AはコンストラクトC上に直接存在しています

  • ACのソース・コード表現への適用として宣言された「明示的または暗黙的」です。

    通常、Cの表現のソース・コードにAI型の注釈が1つのみ存在する場合、ACに適用すると明示的に宣言されます。 「レコード・コンポーネント」で、AIタイプの注釈を、関連するメンバーに暗黙的に伝播できます。 レコード・コンポーネントのタイプを変更するタイプ注釈は、必須メンバーにも伝播できます。 強制メンバーへの注釈の伝播は、「Java言語仕様」 (JLS 8.10.1)で指定されたルールによって管理されます。 CにタイプAIの注釈が複数存在する場合、AIが繰返し可能な注釈インタフェースである場合、タイプAICの注釈はC「暗黙のうちに宣言された」です。

  • Aの表現は、クラス・ファイルのRuntimeVisibleAnnotations (JVMS 4.7.16)、RuntimeVisibleParameterAnnotations (JVMS 4.7.17)属性など、Cの実行可能出力に表示されます。

次のいずれかが成り立つ場合に、注釈AはコンストラクトC上に存在しています

  • AC上に直接存在しています。
  • AI型の注釈はCに直接存在せず、Cはクラスで、AIは継承可能であり、ACのスーパークラスに存在します。
次の両方が成り立つ場合に、注釈AはコンストラクトC上に間接的に存在しています
  • AI 、注釈インタフェースAICを含む繰り返し可能な注釈インタフェースです。
  • AIC型の注釈はCに直接存在し、Aは、AIC型の直接存在する注釈のvalueメソッドをコールした結果に含まれる注釈です。
次のいずれかが成り立つ場合に、注釈AはコンストラクトC関連付けられています
  • AC上に直接または間接的に存在しています。
  • AI型の注釈はCに直接的または間接的に存在せず、Cはクラスであり、AIは継承可能であり、ACのスーパークラスに関連付けられています。

Java言語仕様を参照してください:
「9.6 注釈インタフェース」
9.6.4.3 @Inherited
「9.7.4 注釈が表示される場所」
「9.7.5 同じインタフェースの複数の注釈」
導入されたバージョン:
1.8
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    <A extends Annotation>
    A
    getAnnotation(Class<A> annotationType)
    存在する場合は、この構造の指定された型の注釈を返し、そうでない場合はnullを返します。
    この構造に直接存在する注釈を返します。
    <A extends Annotation>
    A[]
    getAnnotationsByType(Class<A> annotationType)
    この構造に関連付けられている注釈を返します。
  • メソッドの詳細

    • getAnnotationMirrors

      List<? extends AnnotationMirror> getAnnotationMirrors()
      この構造に直接存在する注釈を返します。
      戻り値:
      このコンストラクトに直接存在する注釈。存在しない場合は空のリスト
    • getAnnotation

      <A extends Annotation> A getAnnotation(Class<A> annotationType)
      存在する場合は、この構造の指定された型の注釈を返し、そうでない場合はnullを返します。

      このメソッドが返す注釈には、Class型の値を持つ要素が含まれる場合があります。 この値は直接返されません。つまり、クラス・ローダーを使用するための情報など、クラスを見つけてロードするのに必要な情報は利用できません。 返される注釈で関連するメソッドを呼び出すことによりClassオブジェクトを読み込もうとすると、MirroredTypeExceptionが発生します。これから、対応するTypeMirrorを抽出することができます。 同様に、Class[]の値を持つ要素を読み込もうとすると、MirroredTypesExceptionが発生します。

      ノート: このメソッドは、このインタフェースや関連するインタフェース内のほかのメソッドとは異なります。 実行時の反射情報に基づいて動作 - 現在VMにロードされている注釈インタフェースの表示 - これらのインタフェースで定義および使用される表現ではなく、。 その結果、返された注釈オブジェクトでメソッドを呼び出すと、コア・リフレクションによって返された注釈オブジェクトでメソッドを呼び出したときにスローされる可能性のある例外の多くがスローされることがあります。 このメソッドは、既知の固定された注釈インタフェース・セットで動作するように記述された呼び出し元を対象としています。

      型パラメータ:
      A - 注釈インタフェース
      パラメータ:
      annotationType - 注釈インタフェースに対応するClassオブジェクト
      戻り値:
      このような注釈がpresentの場合は指定された型のこのコンストラクト注釈、それ以外の場合はnull
      Java言語仕様を参照してください:
      9.6.1 注釈インタフェース要素
      関連項目:
    • getAnnotationsByType

      <A extends Annotation> A[] getAnnotationsByType(Class<A> annotationType)
      この構造に関連付けられている注釈を返します。 このコンストラクトに関連付けられている注釈がない場合、戻り値は長さ0の配列です。 コンストラクトCに直接または間接的に存在している注釈の順序の計算では、Cに間接的に存在している注釈は、そのコンテナ注釈の場所に、コンテナ注釈の値要素内に現れる順序で、Cに直接存在しているかのように扱われます。 このメソッドとgetAnnotation(Class)の違いは、引数が「繰り返し可能な注釈インタフェース」かどうかをこのメソッドが検出し、その場合、"検索"がコンテナ注釈を使用してその型の注釈を検索しようとすることです。

      このメソッドから返される注釈には、Class型の値を持つ要素が含まれている可能性があります。 この値は直接返されません。つまり、クラス・ローダーを使用するための情報など、クラスを見つけてロードするのに必要な情報は利用できません。 返される注釈で関連するメソッドを呼び出すことによりClassオブジェクトを読み込もうとすると、MirroredTypeExceptionが発生します。これから、対応するTypeMirrorを抽出することができます。 同様に、Class[]の値を持つ要素を読み込もうとすると、MirroredTypesExceptionが発生します。

      ノート: このメソッドは、このインタフェースや関連するインタフェース内のほかのメソッドとは異なります。 実行時の反射情報に基づいて動作 - 現在VMにロードされている注釈インタフェースの表示 - これらのインタフェースで定義および使用される表現ではなく、。 その結果、返された注釈オブジェクトでメソッドを呼び出すと、コア・リフレクションによって返された注釈オブジェクトでメソッドを呼び出したときにスローされる可能性のある例外の多くがスローされることがあります。 このメソッドは、既知の固定された注釈インタフェース・セットで動作するように記述された呼び出し元を対象としています。

      型パラメータ:
      A - 注釈インタフェース
      パラメータ:
      annotationType - 注釈インタフェースに対応するClassオブジェクト
      戻り値:
      存在する場合は、このコンストラクトの指定された注釈型の注釈。そうでない場合は空の配列
      Java言語仕様を参照してください:
      「9.6 注釈インタフェース」
      「9.6.1 注釈インタフェース要素」
      関連項目: