クラス AnnotatedElementUtils
AnnotatedElements
SE でアノテーション、メタアノテーション、反復可能なアノテーションを見つけるための一般的なユーティリティメソッド。AnnotatedElementUtils
は、アノテーション属性オーバーライドをサポートする Spring のメタアノテーションプログラミングモデルのパブリック API を定義します。アノテーション属性のオーバーライドをサポートする必要がない場合は、代わりに AnnotationUtils
の使用を検討してください。
このクラスの機能は、JDK のイントロスペクション機能自体では提供されないことに注意してください。
アノテーション属性のオーバーライド
合成アノテーションの 属性オーバーライドを使用したメタアノテーションのサポートは、getMergedAnnotationAttributes()
、getMergedAnnotation()
、getAllMergedAnnotations()
、getMergedRepeatableAnnotations()
、findMergedAnnotationAttributes()
、findMergedAnnotation()
、findAllMergedAnnotations()
、findMergedRepeatableAnnotations()
メソッドのすべてのバリアントによって提供されます。
セマンティクスの検索と取得
このクラスのメソッドで使用される検索アルゴリズムは、検索または取得のセマンティクスに従います。使用される検索アルゴリズムの詳細については、各メソッドの javadoc を参照してください。
セマンティクスを取得するは、AnnotatedElement
に存在する(つまり、ローカルで宣言されているか継承SEされている)アノテーション、または AnnotatedElement
の上のアノテーション階層内で宣言されているアノテーションの検索に限定されています。
セマンティクスを見つけるはより包括的であり、get セマンティクスと次のサポートを提供します。
- アノテーション付き要素がクラスである場合、インターフェースで検索
- アノテーション付き要素がクラスの場合、スーパークラスの検索
- アノテーション付き要素がメソッドである場合のブリッジメソッドの解決
- アノテーション付き要素がメソッドの場合、インターフェースでのメソッドの検索
- アノテーション付き要素がメソッドの場合、スーパークラスのメソッドの検索
@Inherited
のサポート
get セマンティクスに続くメソッドは、継承されたアノテーションよりもローカルで宣言されたアノテーション(カスタム構成アノテーションを含む)が優先されることを除いて、Java の @Inherited
SE アノテーションの規約に従います。対照的に、find セマンティクスに従うメソッドは、@Inherited
の存在を完全に無視します。これは、find 検索アルゴリズムが手動で型とメソッドの階層をトラバースし、@Inherited
を必要とせずに暗黙的にアノテーションの継承をサポートするためです。
- 導入:
- 4.0
- 作成者:
- Phillip Webb, Juergen Hoeller, Sam Brannen
- 関連事項:
コンストラクターのサマリー
メソッドのサマリー
修飾子と型メソッド説明static <A extends AnnotationSE>
SetSE<A>findAllMergedAnnotations
(AnnotatedElementSE element, ClassSE<A> annotationType) 指定されたelement
の上のアノテーション階層内で、指定されたannotationType
のすべてのアノテーションを検索します。見つかった各アノテーションについて、そのアノテーションの属性をアノテーション階層の下位レベルのアノテーションの一致する属性とマージし、結果を指定されたannotationType
のアノテーションに合成します。static SetSE<AnnotationSE>
findAllMergedAnnotations
(AnnotatedElementSE element, SetSE<ClassSE<? extends AnnotationSE>> annotationTypes) 指定されたelement
の上のアノテーション階層内で、指定されたannotationTypes
のすべてのアノテーションを検索します。見つかった各アノテーションについて、そのアノテーションの属性をアノテーション階層の下位レベルのアノテーションの一致する属性とマージし、結果を対応するannotationType
のアノテーションに合成します。static <A extends AnnotationSE>
AfindMergedAnnotation
(AnnotatedElementSE element, ClassSE<A> annotationType) 指定されたelement
の上のアノテーション階層内で指定されたannotationType
の最初のアノテーションを見つけ、そのアノテーションの属性をアノテーション階層の下位レベルのアノテーションからの一致する属性とマージし、結果を指定されたannotationType
のアノテーションに合成します。static AnnotationAttributes
findMergedAnnotationAttributes
(AnnotatedElementSE element, ClassSE<? extends AnnotationSE> annotationType, boolean classValuesAsString, boolean nestedAnnotationsAsMap) 指定されたelement
の上のアノテーション階層内で指定されたannotationType
の最初のアノテーションを検索し、そのアノテーションの属性を、アノテーション階層の下位レベルのアノテーションの一致する属性とマージします。static AnnotationAttributes
findMergedAnnotationAttributes
(AnnotatedElementSE element, StringSE annotationName, boolean classValuesAsString, boolean nestedAnnotationsAsMap) 指定されたelement
の上のアノテーション階層内で指定されたannotationName
の最初のアノテーションを検索し、そのアノテーションの属性を、アノテーション階層の下位レベルのアノテーションの一致する属性とマージします。static <A extends AnnotationSE>
SetSE<A>findMergedRepeatableAnnotations
(AnnotatedElementSE element, ClassSE<A> annotationType) 指定されたelement
の上のアノテーション階層内で、指定されたannotationType
のすべての繰り返し可能なアノテーションを検索します。見つかった各アノテーションについて、そのアノテーションの属性をアノテーション階層の下位レベルのアノテーションの一致する属性とマージし、結果を指定されたannotationType
のアノテーションに合成します。static <A extends AnnotationSE>
SetSE<A>findMergedRepeatableAnnotations
(AnnotatedElementSE element, ClassSE<A> annotationType, ClassSE<? extends AnnotationSE> containerType) 指定されたelement
の上のアノテーション階層内で、指定されたannotationType
のすべての繰り返し可能なアノテーションを検索します。見つかった各アノテーションについて、そのアノテーションの属性をアノテーション階層の下位レベルのアノテーションの一致する属性とマージし、結果を指定されたannotationType
のアノテーションに合成します。static AnnotatedElementSE
forAnnotations
(AnnotationSE... annotations) 通常はAnnotatedElementUtils
の他のメソッドで使用するために、指定されたアノテーションに適応したAnnotatedElement
SE を構築します。static MultiValueMap<StringSE,
ObjectSE> getAllAnnotationAttributes
(AnnotatedElementSE element, StringSE annotationName) 指定されたAnnotatedElement
SE の上のアノテーション階層にある指定されたannotationName
のすべてのアノテーションのアノテーション属性を取得し、結果をMultiValueMap
に保存します。static MultiValueMap<StringSE,
ObjectSE> getAllAnnotationAttributes
(AnnotatedElementSE element, StringSE annotationName, boolean classValuesAsString, boolean nestedAnnotationsAsMap) 指定されたAnnotatedElement
SE の上のアノテーション階層にある指定されたannotationName
のすべてのアノテーションのアノテーション属性を取得し、結果をMultiValueMap
に保存します。static <A extends AnnotationSE>
SetSE<A>getAllMergedAnnotations
(AnnotatedElementSE element, ClassSE<A> annotationType) 指定されたelement
の上のアノテーション階層内で、指定されたannotationType
のすべてのアノテーションを取得します。見つかった各アノテーションについて、そのアノテーションの属性をアノテーション階層の下位レベルのアノテーションの一致する属性とマージし、結果を指定されたannotationType
のアノテーションに合成します。static SetSE<AnnotationSE>
getAllMergedAnnotations
(AnnotatedElementSE element, SetSE<ClassSE<? extends AnnotationSE>> annotationTypes) 指定されたelement
の上のアノテーション階層内で、指定されたannotationTypes
のすべてのアノテーションを取得します。見つかった各アノテーションについて、そのアノテーションの属性をアノテーション階層の下位レベルのアノテーションの一致する属性とマージし、結果を対応するannotationType
のアノテーションに合成します。static <A extends AnnotationSE>
AgetMergedAnnotation
(AnnotatedElementSE element, ClassSE<A> annotationType) 指定されたelement
の上のアノテーション階層内の指定されたannotationType
の最初のアノテーションを取得し、そのアノテーションの属性をアノテーション階層の下位レベルのアノテーションの一致する属性とマージし、結果を指定されたannotationType
のアノテーションに合成します。static AnnotationAttributes
getMergedAnnotationAttributes
(AnnotatedElementSE element, ClassSE<? extends AnnotationSE> annotationType) 指定されたelement
の上のアノテーション階層内で指定されたannotationType
の最初のアノテーションを取得し、そのアノテーションの属性を、アノテーション階層の下位レベルのアノテーションの一致する属性とマージします。static AnnotationAttributes
getMergedAnnotationAttributes
(AnnotatedElementSE element, StringSE annotationName) 指定されたelement
の上のアノテーション階層内で指定されたannotationName
の最初のアノテーションを取得し、そのアノテーションの属性を、アノテーション階層の下位レベルのアノテーションの一致する属性とマージします。static AnnotationAttributes
getMergedAnnotationAttributes
(AnnotatedElementSE element, StringSE annotationName, boolean classValuesAsString, boolean nestedAnnotationsAsMap) 指定されたelement
の上のアノテーション階層内で指定されたannotationName
の最初のアノテーションを取得し、そのアノテーションの属性を、アノテーション階層の下位レベルのアノテーションの一致する属性とマージします。static <A extends AnnotationSE>
SetSE<A>getMergedRepeatableAnnotations
(AnnotatedElementSE element, ClassSE<A> annotationType) 指定されたelement
の上のアノテーション階層内で、指定されたannotationType
のすべての繰り返し可能なアノテーションを取得します。見つかった各アノテーションについて、そのアノテーションの属性をアノテーション階層の下位レベルのアノテーションの一致する属性とマージし、結果を指定されたannotationType
のアノテーションに合成します。static <A extends AnnotationSE>
SetSE<A>getMergedRepeatableAnnotations
(AnnotatedElementSE element, ClassSE<A> annotationType, ClassSE<? extends AnnotationSE> containerType) 指定されたelement
の上のアノテーション階層内で、指定されたannotationType
のすべての繰り返し可能なアノテーションを取得します。見つかった各アノテーションについて、そのアノテーションの属性をアノテーション階層の下位レベルのアノテーションの一致する属性とマージし、結果を指定されたannotationType
のアノテーションに合成します。getMetaAnnotationTypes
(AnnotatedElementSE element, ClassSE<? extends AnnotationSE> annotationType) 指定されたAnnotatedElement
SE の(指定されたannotationType
の)アノテーションに存在するすべてのメタアノテーション型の完全修飾クラス名を取得します。getMetaAnnotationTypes
(AnnotatedElementSE element, StringSE annotationName) 指定されたAnnotatedElement
SE の(指定されたannotationName
の)アノテーションに存在するすべてのメタアノテーション型の完全修飾クラス名を取得します。static boolean
hasAnnotation
(AnnotatedElementSE element, ClassSE<? extends AnnotationSE> annotationType) 指定されたannotationType
のアノテーションが、提供されたAnnotatedElement
SE で、指定された要素の上のアノテーション階層内で使用可能かどうかを判別します。static boolean
hasMetaAnnotationTypes
(AnnotatedElementSE element, ClassSE<? extends AnnotationSE> annotationType) 提供されたAnnotatedElement
SE が、指定されたannotationType
のアノテーションでメタアノテーションが付けられた合成アノテーションでアノテーションが付けられているかどうかを判別します。static boolean
hasMetaAnnotationTypes
(AnnotatedElementSE element, StringSE annotationName) 提供されたAnnotatedElement
SE が、指定されたannotationName
のアノテーションでメタアノテーションが付けられた合成アノテーションでアノテーションが付けられているかどうかを判別します。static boolean
isAnnotated
(AnnotatedElementSE element, ClassSE<? extends AnnotationSE> annotationType) 指定されたannotationType
のアノテーションが、指定されたAnnotatedElement
SE に存在するか、指定された要素の上のアノテーション階層内に存在するかを判別します。static boolean
isAnnotated
(AnnotatedElementSE element, StringSE annotationName) 指定されたannotationName
のアノテーションが、指定されたAnnotatedElement
SE に存在するか、指定された要素の上のアノテーション階層内に存在するかを判別します。
コンストラクターの詳細
AnnotatedElementUtils
public AnnotatedElementUtils()
メソッドの詳細
forAnnotations
通常はAnnotatedElementUtils
の他のメソッドで使用するために、指定されたアノテーションに適応したAnnotatedElement
SE を構築します。- パラメーター:
annotations
-AnnotatedElement
を通じて公開するアノテーション- 導入:
- 4.3
getMetaAnnotationTypes
public static SetSE<StringSE> getMetaAnnotationTypes(AnnotatedElementSE element, ClassSE<? extends AnnotationSE> annotationType) 指定されたAnnotatedElement
SE の(指定されたannotationType
の)アノテーションに存在するすべてのメタアノテーション型の完全修飾クラス名を取得します。このメソッドは、クラスレベルの javadoc で説明されている get セマンティクスに従います。
- パラメーター:
element
- アノテーション付き要素annotationType
- メタアノテーションを検索するアノテーション型- 戻り値:
- アノテーションに存在するすべてのメタアノテーションの名前、または見つからない場合は空のセット
- 導入:
- 4.2
- 関連事項:
getMetaAnnotationTypes
public static SetSE<StringSE> getMetaAnnotationTypes(AnnotatedElementSE element, StringSE annotationName) 指定されたAnnotatedElement
SE の(指定されたannotationName
の)アノテーションに存在するすべてのメタアノテーション型の完全修飾クラス名を取得します。このメソッドは、クラスレベルの javadoc で説明されている get セマンティクスに従います。
- パラメーター:
element
- アノテーション付き要素annotationName
- メタアノテーションを検索するアノテーション型の完全修飾クラス名- 戻り値:
- アノテーションに存在するすべてのメタアノテーションの名前、または見つからない場合は空のセット
- 関連事項:
hasMetaAnnotationTypes
public static boolean hasMetaAnnotationTypes(AnnotatedElementSE element, ClassSE<? extends AnnotationSE> annotationType) 提供されたAnnotatedElement
SE が、指定されたannotationType
のアノテーションでメタアノテーションが付けられた合成アノテーションでアノテーションが付けられているかどうかを判別します。このメソッドは、クラスレベルの javadoc で説明されている get セマンティクスに従います。
- パラメーター:
element
- アノテーション付き要素annotationType
- 検索するメタアノテーション型- 戻り値:
true
(一致するメタアノテーションが存在する場合)- 導入:
- 4.2.3
- 関連事項:
hasMetaAnnotationTypes
提供されたAnnotatedElement
SE が、指定されたannotationName
のアノテーションでメタアノテーションが付けられた合成アノテーションでアノテーションが付けられているかどうかを判別します。このメソッドは、クラスレベルの javadoc で説明されている get セマンティクスに従います。
- パラメーター:
element
- アノテーション付き要素annotationName
- 検索するメタアノテーション型の完全修飾クラス名- 戻り値:
true
(一致するメタアノテーションが存在する場合)- 関連事項:
isAnnotated
public static boolean isAnnotated(AnnotatedElementSE element, ClassSE<? extends AnnotationSE> annotationType) 指定されたannotationType
のアノテーションが、指定されたAnnotatedElement
SE に存在するか、指定された要素の上のアノテーション階層内に存在するかを判別します。このメソッドが
true
を返す場合、getMergedAnnotationAttributes(java.lang.reflect.AnnotatedElement, java.lang.Class<? extends java.lang.annotation.Annotation>)
は null 以外の値を返します。このメソッドは、クラスレベルの javadoc で説明されている get セマンティクスに従います。
- パラメーター:
element
- アノテーション付き要素annotationType
- 検索するアノテーション型- 戻り値:
- 一致するアノテーションが存在する場合は
true
- 導入:
- 4.2.3
- 関連事項:
isAnnotated
指定されたannotationName
のアノテーションが、指定されたAnnotatedElement
SE に存在するか、指定された要素の上のアノテーション階層内に存在するかを判別します。このメソッドが
true
を返す場合、getMergedAnnotationAttributes(java.lang.reflect.AnnotatedElement, java.lang.Class<? extends java.lang.annotation.Annotation>)
は null 以外の値を返します。このメソッドは、クラスレベルの javadoc で説明されている get セマンティクスに従います。
- パラメーター:
element
- アノテーション付き要素annotationName
- 検索するアノテーション型の完全修飾クラス名- 戻り値:
- 一致するアノテーションが存在する場合は
true
getMergedAnnotationAttributes
@Nullable public static AnnotationAttributes getMergedAnnotationAttributes(AnnotatedElementSE element, ClassSE<? extends AnnotationSE> annotationType) 指定されたelement
の上のアノテーション階層内で指定されたannotationType
の最初のアノテーションを取得し、そのアノテーションの属性を、アノテーション階層の下位レベルのアノテーションの一致する属性とマージします。@AliasFor
セマンティクスは、単一のアノテーション内とアノテーション階層内の両方で完全にサポートされています。このメソッドは
getMergedAnnotationAttributes(AnnotatedElement, String)
に委譲します。- パラメーター:
element
- アノテーション付き要素annotationType
- 検索するアノテーション型- 戻り値:
- マージされた
AnnotationAttributes
、または見つからない場合はnull
- 導入:
- 4.2
- 関連事項:
getMergedAnnotationAttributes
@Nullable public static AnnotationAttributes getMergedAnnotationAttributes(AnnotatedElementSE element, StringSE annotationName) 指定されたelement
の上のアノテーション階層内で指定されたannotationName
の最初のアノテーションを取得し、そのアノテーションの属性を、アノテーション階層の下位レベルのアノテーションの一致する属性とマージします。@AliasFor
セマンティクスは、単一のアノテーション内とアノテーション階層内の両方で完全にサポートされています。このメソッドは
getMergedAnnotationAttributes(AnnotatedElement, String, boolean, boolean)
に委譲し、classValuesAsString
およびnestedAnnotationsAsMap
にfalse
を提供します。- パラメーター:
element
- アノテーション付き要素annotationName
- 検索するアノテーション型の完全修飾クラス名- 戻り値:
- マージされた
AnnotationAttributes
、または見つからない場合はnull
- 導入:
- 4.2
- 関連事項:
getMergedAnnotationAttributes
@Nullable public static AnnotationAttributes getMergedAnnotationAttributes(AnnotatedElementSE element, StringSE annotationName, boolean classValuesAsString, boolean nestedAnnotationsAsMap) 指定されたelement
の上のアノテーション階層内で指定されたannotationName
の最初のアノテーションを取得し、そのアノテーションの属性を、アノテーション階層の下位レベルのアノテーションの一致する属性とマージします。アノテーション階層の下位レベルの属性は、上位レベルの同じ名前の属性をオーバーライドし、
@AliasFor
セマンティクスは、単一のアノテーション内とアノテーション階層内の両方で完全にサポートされます。getAllAnnotationAttributes(java.lang.reflect.AnnotatedElement, java.lang.String)
とは異なり、このメソッドで使用される検索アルゴリズムは、指定されたannotationName
の最初のアノテーションが見つかると、アノテーション階層の検索を停止します。結果として、指定されたannotationName
の追加のアノテーションは無視されます。このメソッドは、クラスレベルの javadoc で説明されている get セマンティクスに従います。
- パラメーター:
element
- アノテーション付き要素annotationName
- 検索するアノテーション型の完全修飾クラス名classValuesAsString
- クラス参照を文字列に変換するか、クラス参照として保持するかnestedAnnotationsAsMap
- ネストされた Annotation インスタンスをAnnotationAttributes
マップに変換するか、Annotation インスタンスとして保持するか- 戻り値:
- マージされた
AnnotationAttributes
、または見つからない場合はnull
- 導入:
- 4.2
- 関連事項:
getMergedAnnotation
@Nullable public static <A extends AnnotationSE> A getMergedAnnotation(AnnotatedElementSE element, ClassSE<A> annotationType) 指定されたelement
の上のアノテーション階層内の指定されたannotationType
の最初のアノテーションを取得し、そのアノテーションの属性をアノテーション階層の下位レベルのアノテーションの一致する属性とマージし、結果を指定されたannotationType
のアノテーションに合成します。@AliasFor
セマンティクスは、単一のアノテーション内とアノテーション階層内の両方で完全にサポートされています。- パラメーター:
element
- アノテーション付き要素annotationType
- 検索するアノテーション型- 戻り値:
- マージ、合成された
Annotation
、見つからない場合はnull
- 導入:
- 4.2
- 関連事項:
getAllMergedAnnotations
public static <A extends AnnotationSE> SetSE<A> getAllMergedAnnotations(AnnotatedElementSE element, ClassSE<A> annotationType) 指定されたelement
の上のアノテーション階層内で、指定されたannotationType
のすべてのアノテーションを取得します。見つかった各アノテーションについて、そのアノテーションの属性をアノテーション階層の下位レベルのアノテーションの一致する属性とマージし、結果を指定されたannotationType
のアノテーションに合成します。@AliasFor
セマンティクスは、単一のアノテーション内とアノテーション階層内の両方で完全にサポートされています。このメソッドは、クラスレベルの javadoc で説明されている get セマンティクスに従います。
- パラメーター:
element
- アノテーション付き要素 (非null
)annotationType
- 検索するアノテーション型 (非null
)- 戻り値:
- マージされ、合成されたすべての
Annotations
のセットが見つかりました。見つからなかった場合は空のセット - 導入:
- 4.3
- 関連事項:
getAllMergedAnnotations
public static SetSE<AnnotationSE> getAllMergedAnnotations(AnnotatedElementSE element, SetSE<ClassSE<? extends AnnotationSE>> annotationTypes) 指定されたelement
の上のアノテーション階層内で、指定されたannotationTypes
のすべてのアノテーションを取得します。見つかった各アノテーションについて、そのアノテーションの属性をアノテーション階層の下位レベルのアノテーションの一致する属性とマージし、結果を対応するannotationType
のアノテーションに合成します。@AliasFor
セマンティクスは、単一のアノテーション内とアノテーション階層内の両方で完全にサポートされています。このメソッドは、クラスレベルの javadoc で説明されている get セマンティクスに従います。
- パラメーター:
element
- アノテーション付き要素 (非null
)annotationTypes
- 検索するアノテーション型- 戻り値:
- マージされ、合成されたすべての
Annotations
のセットが見つかりました。見つからなかった場合は空のセット - 導入:
- 5.1
- 関連事項:
getMergedRepeatableAnnotations
public static <A extends AnnotationSE> SetSE<A> getMergedRepeatableAnnotations(AnnotatedElementSE element, ClassSE<A> annotationType) 指定されたelement
の上のアノテーション階層内で、指定されたannotationType
のすべての繰り返し可能なアノテーションを取得します。見つかった各アノテーションについて、そのアノテーションの属性をアノテーション階層の下位レベルのアノテーションの一致する属性とマージし、結果を指定されたannotationType
のアノテーションに合成します。繰り返し可能なアノテーションを保持するコンテナー型は、
Repeatable
SE を介して検索されます。@AliasFor
セマンティクスは、単一のアノテーション内とアノテーション階層内の両方で完全にサポートされています。このメソッドは、クラスレベルの javadoc で説明されている get セマンティクスに従います。
- パラメーター:
element
- アノテーション付き要素 (非null
)annotationType
- 検索するアノテーション型 (非null
)- 戻り値:
- 見つかったすべてのマージされた繰り返し可能な
Annotations
のセット、または何も見つからなかった場合は空のセット - 例外:
IllegalArgumentExceptionSE
-element
またはannotationType
がnull
である場合、またはコンテナー型を解決できない場合- 導入:
- 4.3
- 関連事項:
getMergedRepeatableAnnotations
public static <A extends AnnotationSE> SetSE<A> getMergedRepeatableAnnotations(AnnotatedElementSE element, ClassSE<A> annotationType, @Nullable ClassSE<? extends AnnotationSE> containerType) 指定されたelement
の上のアノテーション階層内で、指定されたannotationType
のすべての繰り返し可能なアノテーションを取得します。見つかった各アノテーションについて、そのアノテーションの属性をアノテーション階層の下位レベルのアノテーションの一致する属性とマージし、結果を指定されたannotationType
のアノテーションに合成します。@AliasFor
セマンティクスは、単一のアノテーション内とアノテーション階層内の両方で完全にサポートされています。このメソッドは、クラスレベルの javadoc で説明されている get セマンティクスに従います。
警告 : 提供された
containerType
がnull
でない場合、検索は、コンテナーが提供されたcontainerType
である反復可能なアノテーションのみをサポートするように制限されます。これにより、他の型の繰り返し可能なアノテーションでメタアノテーションとして宣言された繰り返し可能なアノテーションが検索で検出されなくなります。このようなユースケースをサポートする必要がある場合は、このメソッドよりもgetMergedRepeatableAnnotations(AnnotatedElement, Class)
を優先するか、複数の反復可能なアノテーション型をサポートするように構成されたRepeatableContainers
と組み合わせてMergedAnnotations
API を直接使用してください。- パラメーター:
element
- アノテーション付き要素 (非null
)annotationType
- 検索するアノテーション型 (非null
)containerType
- アノテーションを保持するコンテナーの型。コンテナー型をRepeatable
SE でルックアップする必要がある場合は、null
の場合があります- 戻り値:
- 見つかったすべてのマージされた繰り返し可能な
Annotations
のセット、または何も見つからなかった場合は空のセット - 例外:
IllegalArgumentExceptionSE
-element
またはannotationType
がnull
である場合、またはコンテナー型を解決できない場合AnnotationConfigurationException
- 指定されたcontainerType
が指定されたannotationType
の有効なコンテナーアノテーションでない場合- 導入:
- 4.3
- 関連事項:
getAllAnnotationAttributes
@Nullable public static MultiValueMap<StringSE,ObjectSE> getAllAnnotationAttributes(AnnotatedElementSE element, StringSE annotationName) 指定されたAnnotatedElement
SE の上のアノテーション階層にある指定されたannotationName
のすべてのアノテーションのアノテーション属性を取得し、結果をMultiValueMap
に保存します。メモ:
getMergedAnnotationAttributes(AnnotatedElement, String)
とは異なり、このメソッドは属性のオーバーライドをサポートしていません。このメソッドは、クラスレベルの javadoc で説明されている get セマンティクスに従います。
- パラメーター:
element
- アノテーション付き要素annotationName
- 検索するアノテーション型の完全修飾クラス名- 戻り値:
- 見つかったすべてのアノテーションからのアノテーション属性を含む、属性名をキーとする
MultiValueMap
、見つからない場合はnull
- 関連事項:
getAllAnnotationAttributes
@Nullable public static MultiValueMap<StringSE,ObjectSE> getAllAnnotationAttributes(AnnotatedElementSE element, StringSE annotationName, boolean classValuesAsString, boolean nestedAnnotationsAsMap) 指定されたAnnotatedElement
SE の上のアノテーション階層にある指定されたannotationName
のすべてのアノテーションのアノテーション属性を取得し、結果をMultiValueMap
に保存します。メモ:
getMergedAnnotationAttributes(AnnotatedElement, String)
とは異なり、このメソッドは属性のオーバーライドをサポートしていません。このメソッドは、クラスレベルの javadoc で説明されている get セマンティクスに従います。
- パラメーター:
element
- アノテーション付き要素annotationName
- 検索するアノテーション型の完全修飾クラス名classValuesAsString
- クラス参照を文字列に変換するか、クラス参照として保持するかnestedAnnotationsAsMap
- ネストされた Annotation インスタンスをAnnotationAttributes
マップに変換するか、Annotation インスタンスとして保持するか- 戻り値:
- 見つかったすべてのアノテーションからのアノテーション属性を含む、属性名をキーとする
MultiValueMap
、見つからない場合はnull
hasAnnotation
public static boolean hasAnnotation(AnnotatedElementSE element, ClassSE<? extends AnnotationSE> annotationType) 指定されたannotationType
のアノテーションが、提供されたAnnotatedElement
SE で、指定された要素の上のアノテーション階層内で使用可能かどうかを判別します。このメソッドが
true
を返す場合、findMergedAnnotationAttributes(java.lang.reflect.AnnotatedElement, java.lang.Class<? extends java.lang.annotation.Annotation>, boolean, boolean)
は null 以外の値を返します。このメソッドは、クラスレベルの javadoc で説明されている検索セマンティクスに従います。
- パラメーター:
element
- アノテーション付き要素annotationType
- 検索するアノテーション型- 戻り値:
- 一致するアノテーションが存在する場合は
true
- 導入:
- 4.3
- 関連事項:
findMergedAnnotationAttributes
@Nullable public static AnnotationAttributes findMergedAnnotationAttributes(AnnotatedElementSE element, ClassSE<? extends AnnotationSE> annotationType, boolean classValuesAsString, boolean nestedAnnotationsAsMap) 指定されたelement
の上のアノテーション階層内で指定されたannotationType
の最初のアノテーションを検索し、そのアノテーションの属性を、アノテーション階層の下位レベルのアノテーションの一致する属性とマージします。アノテーション階層の下位レベルの属性は、上位レベルの同じ名前の属性をオーバーライドし、
@AliasFor
セマンティクスは、単一のアノテーション内とアノテーション階層内の両方で完全にサポートされます。getAllAnnotationAttributes(java.lang.reflect.AnnotatedElement, java.lang.String)
とは異なり、このメソッドで使用される検索アルゴリズムは、指定されたannotationType
の最初のアノテーションが見つかると、アノテーション階層の検索を停止します。結果として、指定されたannotationType
の追加のアノテーションは無視されます。このメソッドは、クラスレベルの javadoc で説明されている検索セマンティクスに従います。
- パラメーター:
element
- アノテーション付き要素annotationType
- 検索するアノテーション型classValuesAsString
- クラス参照を文字列に変換するか、クラス参照として保持するかnestedAnnotationsAsMap
- ネストされた Annotation インスタンスをAnnotationAttributes
マップに変換するか、Annotation インスタンスとして保持するか- 戻り値:
- マージされた
AnnotationAttributes
、または見つからない場合はnull
- 導入:
- 4.2
- 関連事項:
findMergedAnnotationAttributes
@Nullable public static AnnotationAttributes findMergedAnnotationAttributes(AnnotatedElementSE element, StringSE annotationName, boolean classValuesAsString, boolean nestedAnnotationsAsMap) 指定されたelement
の上のアノテーション階層内で指定されたannotationName
の最初のアノテーションを検索し、そのアノテーションの属性を、アノテーション階層の下位レベルのアノテーションの一致する属性とマージします。アノテーション階層の下位レベルの属性は、上位レベルの同じ名前の属性をオーバーライドし、
@AliasFor
セマンティクスは、単一のアノテーション内とアノテーション階層内の両方で完全にサポートされます。getAllAnnotationAttributes(java.lang.reflect.AnnotatedElement, java.lang.String)
とは異なり、このメソッドで使用される検索アルゴリズムは、指定されたannotationName
の最初のアノテーションが見つかると、アノテーション階層の検索を停止します。結果として、指定されたannotationName
の追加のアノテーションは無視されます。このメソッドは、クラスレベルの javadoc で説明されている検索セマンティクスに従います。
- パラメーター:
element
- アノテーション付き要素annotationName
- 検索するアノテーション型の完全修飾クラス名classValuesAsString
- クラス参照を文字列に変換するか、クラス参照として保持するかnestedAnnotationsAsMap
- ネストされた Annotation インスタンスをAnnotationAttributes
マップに変換するか、Annotation インスタンスとして保持するか- 戻り値:
- マージされた
AnnotationAttributes
、または見つからない場合はnull
- 導入:
- 4.2
- 関連事項:
findMergedAnnotation
@Nullable public static <A extends AnnotationSE> A findMergedAnnotation(AnnotatedElementSE element, ClassSE<A> annotationType) 指定されたelement
の上のアノテーション階層内で指定されたannotationType
の最初のアノテーションを見つけ、そのアノテーションの属性をアノテーション階層の下位レベルのアノテーションからの一致する属性とマージし、結果を指定されたannotationType
のアノテーションに合成します。@AliasFor
セマンティクスは、単一のアノテーション内とアノテーション階層内の両方で完全にサポートされています。このメソッドは、クラスレベルの javadoc で説明されている検索セマンティクスに従います。
- パラメーター:
element
- アノテーション付き要素annotationType
- 検索するアノテーション型- 戻り値:
- マージ、合成された
Annotation
、見つからない場合はnull
- 導入:
- 4.2
- 関連事項:
findAllMergedAnnotations
public static <A extends AnnotationSE> SetSE<A> findAllMergedAnnotations(AnnotatedElementSE element, ClassSE<A> annotationType) 指定されたelement
の上のアノテーション階層内で、指定されたannotationType
のすべてのアノテーションを検索します。見つかった各アノテーションについて、そのアノテーションの属性をアノテーション階層の下位レベルのアノテーションの一致する属性とマージし、結果を指定されたannotationType
のアノテーションに合成します。@AliasFor
セマンティクスは、単一のアノテーション内とアノテーション階層内の両方で完全にサポートされています。このメソッドは、クラスレベルの javadoc で説明されている検索セマンティクスに従います。
- パラメーター:
element
- アノテーション付き要素 (非null
)annotationType
- 検索するアノテーション型 (非null
)- 戻り値:
- マージされ、合成されたすべての
Annotations
のセットが見つかりました。見つからなかった場合は空のセット - 導入:
- 4.3
- 関連事項:
findAllMergedAnnotations
public static SetSE<AnnotationSE> findAllMergedAnnotations(AnnotatedElementSE element, SetSE<ClassSE<? extends AnnotationSE>> annotationTypes) 指定されたelement
の上のアノテーション階層内で、指定されたannotationTypes
のすべてのアノテーションを検索します。見つかった各アノテーションについて、そのアノテーションの属性をアノテーション階層の下位レベルのアノテーションの一致する属性とマージし、結果を対応するannotationType
のアノテーションに合成します。@AliasFor
セマンティクスは、単一のアノテーション内とアノテーション階層内の両方で完全にサポートされています。このメソッドは、クラスレベルの javadoc で説明されている検索セマンティクスに従います。
- パラメーター:
element
- アノテーション付き要素 (非null
)annotationTypes
- 検索するアノテーション型- 戻り値:
- マージされ、合成されたすべての
Annotations
のセットが見つかりました。見つからなかった場合は空のセット - 導入:
- 5.1
- 関連事項:
findMergedRepeatableAnnotations
public static <A extends AnnotationSE> SetSE<A> findMergedRepeatableAnnotations(AnnotatedElementSE element, ClassSE<A> annotationType) 指定されたelement
の上のアノテーション階層内で、指定されたannotationType
のすべての繰り返し可能なアノテーションを検索します。見つかった各アノテーションについて、そのアノテーションの属性をアノテーション階層の下位レベルのアノテーションの一致する属性とマージし、結果を指定されたannotationType
のアノテーションに合成します。繰り返し可能なアノテーションを保持するコンテナー型は、
Repeatable
SE を介して検索されます。@AliasFor
セマンティクスは、単一のアノテーション内とアノテーション階層内の両方で完全にサポートされています。このメソッドは、クラスレベルの javadoc で説明されている検索セマンティクスに従います。
- パラメーター:
element
- アノテーション付き要素 (非null
)annotationType
- 検索するアノテーション型 (非null
)- 戻り値:
- 見つかったすべてのマージされた繰り返し可能な
Annotations
のセット、または何も見つからなかった場合は空のセット - 例外:
IllegalArgumentExceptionSE
-element
またはannotationType
がnull
である場合、またはコンテナー型を解決できない場合- 導入:
- 4.3
- 関連事項:
findMergedRepeatableAnnotations
public static <A extends AnnotationSE> SetSE<A> findMergedRepeatableAnnotations(AnnotatedElementSE element, ClassSE<A> annotationType, @Nullable ClassSE<? extends AnnotationSE> containerType) 指定されたelement
の上のアノテーション階層内で、指定されたannotationType
のすべての繰り返し可能なアノテーションを検索します。見つかった各アノテーションについて、そのアノテーションの属性をアノテーション階層の下位レベルのアノテーションの一致する属性とマージし、結果を指定されたannotationType
のアノテーションに合成します。@AliasFor
セマンティクスは、単一のアノテーション内とアノテーション階層内の両方で完全にサポートされています。このメソッドは、クラスレベルの javadoc で説明されている検索セマンティクスに従います。
警告 : 提供された
containerType
がnull
でない場合、検索は、コンテナーが提供されたcontainerType
である反復可能なアノテーションのみをサポートするように制限されます。これにより、他の型の繰り返し可能なアノテーションでメタアノテーションとして宣言された繰り返し可能なアノテーションが検索で検出されなくなります。このようなユースケースをサポートする必要がある場合は、このメソッドよりもfindMergedRepeatableAnnotations(AnnotatedElement, Class)
を優先するか、複数の反復可能なアノテーション型をサポートするように構成されたRepeatableContainers
と組み合わせてMergedAnnotations
API を直接使用してください。- パラメーター:
element
- アノテーション付き要素 (非null
)annotationType
- 検索するアノテーション型 (非null
)containerType
- アノテーションを保持するコンテナーの型。コンテナー型をRepeatable
SE でルックアップする必要がある場合は、null
の場合があります- 戻り値:
- 見つかったすべてのマージされた繰り返し可能な
Annotations
のセット、または何も見つからなかった場合は空のセット - 例外:
IllegalArgumentExceptionSE
-element
またはannotationType
がnull
である場合、またはコンテナー型を解決できない場合AnnotationConfigurationException
- 指定されたcontainerType
が指定されたannotationType
の有効なコンテナーアノテーションでない場合- 導入:
- 4.3
- 関連事項: