public interface AnnotatedConstruct
下記の定義において、注釈Aは注釈型ATを持っています。 ATが繰返し可能な注釈型の場合、包含する注釈の型はATCです。
次のいずれかが成り立つ場合に、注釈AはコンストラクトC上に直接存在しています。
通常、Cのソース・コード表現にAT型の注釈が1つだけ現れる場合、AはCに適用されるものとして明示的に宣言されています。 C上にAT型の注釈が複数存在している場合で、ATが繰返し可能な注釈型のとき、CにはATC型の注釈が暗黙的に宣言されています。
RuntimeVisibleAnnotations属性やRuntimeVisibleParameterAnnotations属性のように、Aの表現がCの実行可能出力に現れます。
次のいずれかが成り立つ場合に、注釈AはコンストラクトC上に存在しています。
valueメソッドを呼び出した結果に注釈Aが含まれています。
| 修飾子と型 | メソッド | 説明 |
|---|---|---|
<A extends Annotation> |
getAnnotation(Class<A> annotationType) |
存在する場合は、このコンストラクトの指定された型の注釈を返し、そうでない場合は
nullを返します。 |
List<? extends AnnotationMirror> |
getAnnotationMirrors() |
このコンストラクトに直接存在する注釈を返します。
|
<A extends Annotation> |
getAnnotationsByType(Class<A> annotationType) |
このコンストラクトに関連付けられている注釈を返します。
|
List<? extends AnnotationMirror> getAnnotationMirrors()
<A extends Annotation> A getAnnotation(Class<A> annotationType)
nullを返します。
このメソッドが返す注釈には、Class型の値を持つ要素が含まれる場合があります。 この値は直接返されません。つまり、クラス・ローダーを使用するための情報など、クラスを見つけてロードするのに必要な情報は利用できません。 返される注釈で関連するメソッドを呼び出すことによりClassオブジェクトを読み込もうとすると、MirroredTypeExceptionが発生します。これから、対応するTypeMirrorを抽出することができます。 同様に、Class[]の値を持つ要素を読み込もうとすると、MirroredTypesExceptionが発生します。
ノート: このメソッドは、このインタフェースや関連するインタフェース内のほかのメソッドとは異なります。 このメソッドは、これらのインタフェースにより定義され、これらのインタフェースを通じて使用される表現に対して操作を行うのではなく、実行時リフレクト情報(仮想マシンに現在ロードされている注釈型の表現)に対して操作を行います。 その結果、返された注釈オブジェクトでメソッドを呼び出すと、コア・リフレクションによって返された注釈オブジェクトでメソッドを呼び出したときにスローされる可能性のある例外の多くがスローされることがあります。 このメソッドは、注釈型の既知の固定セットに対して操作を行うように記述された呼出し側を対象としています。
A - 注釈型annotationType - 注釈型に対応するClassオブジェクトnullgetAnnotationMirrors(), AnnotatedElement.getAnnotation(java.lang.Class<T>), EnumConstantNotPresentException, AnnotationTypeMismatchException, IncompleteAnnotationException, MirroredTypeException, MirroredTypesException<A extends Annotation> A[] getAnnotationsByType(Class<A> annotationType)
getAnnotation(Class)の違いとして、このメソッドは引数が繰返し可能な注釈型かどうかを検出し、繰返し可能な注釈型であれば、コンテナ注釈を調べることでその型の注釈を1つ以上見つけようとします。
このメソッドから返される注釈には、Class型の値を持つ要素が含まれている可能性があります。 この値は直接返されません。つまり、クラス・ローダーを使用するための情報など、クラスを見つけてロードするのに必要な情報は利用できません。 返される注釈で関連するメソッドを呼び出すことによりClassオブジェクトを読み込もうとすると、MirroredTypeExceptionが発生します。これから、対応するTypeMirrorを抽出することができます。 同様に、Class[]の値を持つ要素を読み込もうとすると、MirroredTypesExceptionが発生します。
ノート: このメソッドは、このインタフェースや関連するインタフェース内のほかのメソッドとは異なります。 このメソッドは、これらのインタフェースにより定義され、これらのインタフェースを通じて使用される表現に対して操作を行うのではなく、実行時リフレクト情報(仮想マシンに現在ロードされている注釈型の表現)に対して操作を行います。 その結果、返された注釈オブジェクトでメソッドを呼び出すと、コア・リフレクションによって返された注釈オブジェクトでメソッドを呼び出したときにスローされる可能性のある例外の多くがスローされることがあります。 このメソッドは、注釈型の既知の固定セットに対して操作を行うように記述された呼出し側を対象としています。
A - 注釈型annotationType - 注釈型に対応するClassオブジェクトgetAnnotationMirrors(), getAnnotation(Class), AnnotatedElement.getAnnotationsByType(Class), EnumConstantNotPresentException, AnnotationTypeMismatchException, IncompleteAnnotationException, MirroredTypeException, MirroredTypesException バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。