インターフェース MergedAnnotation<A extends AnnotationSE>
- 型パラメーター:
A
- アノテーション型
MergedAnnotations
コレクションから返された 1 つのマージされたアノテーション。属性値がさまざまなソース値から「マージ」された可能性のあるアノテーションのビューを表示します。 属性値には、さまざまな get
メソッドを使用してアクセスできます。例: int
属性にアクセスするには、getInt(String)
メソッドが使用されます。
アクセス時に属性値は変換されないことに注意してください。例: 基本となる属性が int
の場合、getString(String)
を呼び出すことはできません。このルールの唯一の例外は、Class
および Class[]
の値です。これらの値は、String
および String[]
としてそれぞれアクセスされ、潜在的な初期クラスの初期化を防止します。
必要に応じて、MergedAnnotation
を合成して実際の Annotation
SE に戻すことができます。
- 導入:
- 5.2
- 作成者:
- Phillip Webb, Juergen Hoeller, Sam Brannen
- 関連事項:
ネストされたクラスのサマリー
フィールドサマリー
メソッドのサマリー
修飾子と型メソッド説明asAnnotationAttributes
(MergedAnnotation.Adapt... adaptations) このマージされたアノテーションから新しい可変AnnotationAttributes
インスタンスを作成します。asMap
(FunctionSE<MergedAnnotation<?>, T> factory, MergedAnnotation.Adapt... adaptations) すべてのアノテーション属性を含む、指定された型の新しいMap
SE インスタンスを作成します。asMap
(MergedAnnotation.Adapt... adaptations) すべてのアノテーション属性を含む不変のMap
SE を取得します。filterAttributes
(PredicateSE<StringSE> predicate) 指定された述語に一致する属性のみを持つアノテーションの新しいビューを作成します。デフォルト値が削除されたすべての属性を使用して、アノテーションの新しいビューを作成します。static <A extends AnnotationSE>
MergedAnnotation<A>from
(A annotation) 指定されたアノテーションから新しいMergedAnnotation
インスタンスを作成します。static <A extends AnnotationSE>
MergedAnnotation<A>指定されたアノテーションから新しいMergedAnnotation
インスタンスを作成します。int
このアノテーションを含む集約コレクションのインデックスを取得します。<T extends AnnotationSE>
MergedAnnotation<T>getAnnotation
(StringSE attributeName, ClassSE<T> type) アノテーションから必要なアノテーション属性値を取得します。<T extends AnnotationSE>
MergedAnnotation<T>[]getAnnotationArray
(StringSE attributeName, ClassSE<T> type) 必要なアノテーション配列属性値をアノテーションから取得します。boolean
getBoolean
(StringSE attributeName) アノテーションから必要なブール属性値を取得します。boolean[]
getBooleanArray
(StringSE attributeName) アノテーションから必要なブール配列属性値を取得します。byte
アノテーションから必要なバイト属性値を取得します。byte[]
getByteArray
(StringSE attributeName) アノテーションから必要なバイト配列属性値を取得します。char
アノテーションから必要な char 属性値を取得します。char[]
getCharArray
(StringSE attributeName) アノテーションから必要な文字配列属性値を取得します。ClassSE<?>
アノテーションから必要なクラス属性値を取得します。ClassSE<?>[]
getClassArray
(StringSE attributeName) アノテーションから必要なクラス配列属性値を取得します。getDefaultValue
(StringSE attributeName) アノテーション宣言で指定されているように、アノテーションからデフォルトの属性値を取得します。<T> OptionalSE<T>
getDefaultValue
(StringSE attributeName, ClassSE<T> type) アノテーション宣言で指定されているように、アノテーションからデフォルトの属性値を取得します。int
メタアノテーションとしての使用に関連するこのアノテーションの距離を取得します。double
アノテーションから必要な double 属性値を取得します。double[]
getDoubleArray
(StringSE attributeName) アノテーションから必要な二重配列属性値を取得します。<E extends EnumSE<E>>
Eアノテーションから必要な列挙型属性値を取得します。<E extends EnumSE<E>>
E[]getEnumArray
(StringSE attributeName, ClassSE<E> type) アノテーションから必要な列挙型配列属性値を取得します。float
アノテーションから必要なフロート属性値を取得します。float[]
getFloatArray
(StringSE attributeName) アノテーションから必要なフロート配列属性値を取得します。int
アノテーションから必要な int 属性値を取得します。int[]
getIntArray
(StringSE attributeName) アノテーションから必要な int 配列属性値を取得します。long
アノテーションから必要な長い属性値を取得します。long[]
getLongArray
(StringSE attributeName) アノテーションから必要な長い配列属性値を取得します。メタアノテーションのソースを取得します。アノテーションがメタ表示でない場合はnull
を取得します。ListSE<ClassSE<? extends AnnotationSE>>
このアノテーションからroot
までのアノテーション階層内のアノテーション型の完全なリストを取得します。getRoot()
ルートアノテーションを取得します。short
アノテーションから必要な短い属性値を取得します。short[]
getShortArray
(StringSE attributeName) アノテーションから必要な短い配列属性値を取得します。最終的にルートアノテーションを宣言したソースを取得します。ソースが不明の場合はnull
を取得します。アノテーションから必要な文字列属性値を取得します。StringSE[]
getStringArray
(StringSE attributeName) アノテーションから必要な文字列配列属性値を取得します。getType()
実際のアノテーション型のClass
参照を取得します。アノテーションからオプションの属性値を取得します。<T> OptionalSE<T>
アノテーションからオプションの属性値を取得します。boolean
hasDefaultValue
(StringSE attributeName) アノテーション宣言と比較したときに、指定された属性名にデフォルト値があるかどうかを判別します。boolean
hasNonDefaultValue
(StringSE attributeName) アノテーション宣言と比較したときに、指定された属性名にデフォルト以外の値があるかどうかを判別します。boolean
アノテーションがソースに直接存在するかどうかを確認します。boolean
アノテーションがソースにメタ表示されているかどうかを確認します。boolean
アノテーションがソースに存在するかどうかを確認します。static <A extends AnnotationSE>
MergedAnnotation<A>missing()
欠落しているアノテーションを表すMergedAnnotation
を作成します(つまりstatic <A extends AnnotationSE>
MergedAnnotation<A>指定されたアノテーション型の新しいMergedAnnotation
インスタンスを作成します。static <A extends AnnotationSE>
MergedAnnotation<A>マップが提供する属性値を使用して、指定されたアノテーション型の新しいMergedAnnotation
インスタンスを作成します。static <A extends AnnotationSE>
MergedAnnotation<A>of
(ClassLoaderSE classLoader, ObjectSE source, ClassSE<A> annotationType, MapSE<StringSE, ?> attributes) マップが提供する属性値を使用して、指定されたアノテーション型の新しいMergedAnnotation
インスタンスを作成します。static <A extends AnnotationSE>
MergedAnnotation<A>of
(AnnotatedElementSE source, ClassSE<A> annotationType, MapSE<StringSE, ?> attributes) マップが提供する属性値を使用して、指定されたアノテーション型の新しいMergedAnnotation
インスタンスを作成します。コードで直接使用できるこのマージされたアノテーションの型安全な合成バージョンを作成します。synthesize
(PredicateSE<? super MergedAnnotation<A>> condition) 必要に応じて、条件述語に基づいて、このアノテーションの型安全な合成バージョンを作成します。マージされていない属性値を公開するアノテーションの新しいビューを作成します。
フィールドの詳細
VALUE
単一の要素を持つアノテーションの属性名。- 関連事項:
メソッドの詳細
getType
実際のアノテーション型のClass
参照を取得します。- 戻り値:
- アノテーション型
isPresent
boolean isPresent()アノテーションがソースに存在するかどうかを確認します。使用されるMergedAnnotations.SearchStrategy
のコンテキスト内で直接存在 するアノテーションとメタ提示アノテーションを考慮します。- 戻り値:
- アノテーションが存在する場合は
true
isDirectlyPresent
boolean isDirectlyPresent()アノテーションがソースに直接存在するかどうかを確認します。直接存在するアノテーションは、ユーザーが明示的に宣言したアノテーションであり、メタ提示または
@Inherited
SE ではありません。- 戻り値:
- アノテーションが直接存在する場合は
true
isMetaPresent
boolean isMetaPresent()アノテーションがソースにメタ表示されているかどうかを確認します。メタ提示アノテーションは、ユーザーが明示的に宣言していないアノテーションですが、アノテーション階層のどこかでメタアノテーションとして使用されています。
- 戻り値:
- アノテーションがメタ表示の場合は
true
getDistance
int getDistance()メタアノテーションとしての使用に関連するこのアノテーションの距離を取得します。直接宣言されたアノテーションの距離は
0
、メタアノテーションの距離は1
、メタアノテーションのメタアノテーションの距離は2
などです。欠落したアノテーションは常に-1
の距離を返します。- 戻り値:
- アノテーション距離、またはアノテーションが欠落している場合は
-1
getAggregateIndex
int getAggregateIndex()このアノテーションを含む集約コレクションのインデックスを取得します。アノテーションのストリームを並べ替えるために使用できます。たとえば、スーパークラスまたはインターフェースで宣言されたアノテーションにより高い優先度を与えることができます。欠落したアノテーションは常に
-1
の集約インデックスを返します。- 戻り値:
- 集約インデックス(
0
から始まる)、またはアノテーションがない場合は-1
getSource
最終的にルートアノテーションを宣言したソースを取得します。ソースが不明の場合はnull
を取得します。このマージされたアノテーションが
from
およびAnnotatedElement
SE で作成された場合、このソースは同じ型の要素になります。アノテーションをリフレクションを使用せずにロードした場合、ソースはどの型でもかまいませんが、適切なtoString()
が必要です。メタアノテーションは常にroot
と同じソースを返します。- 戻り値:
- ソース、または
null
getMetaSource
- 戻り値:
- メタアノテーションソースまたは
null
- 関連事項:
getRoot
MergedAnnotation<?> getRoot()ソースで直接宣言されたルートアノテーション、つまりdistance
0
アノテーションを取得します。- 戻り値:
- ルートアノテーション
- 関連事項:
getMetaTypes
ListSE<ClassSE<? extends AnnotationSE>> getMetaTypes()このアノテーションからroot
までのアノテーション階層内のアノテーション型の完全なリストを取得します。マージされたアノテーションインスタンスを一意に識別するための便利な方法を提供します。
- 戻り値:
- アノテーションのメタ型
- 関連事項:
hasNonDefaultValue
アノテーション宣言と比較したときに、指定された属性名にデフォルト以外の値があるかどうかを判別します。- パラメーター:
attributeName
- 属性名- 戻り値:
true
(属性値がデフォルト値と異なる場合)
hasDefaultValue
アノテーション宣言と比較したときに、指定された属性名にデフォルト値があるかどうかを判別します。- パラメーター:
attributeName
- 属性名- 戻り値:
true
(属性値がデフォルト値と同じ場合)- 例外:
NoSuchElementExceptionSE
getByte
アノテーションから必要なバイト属性値を取得します。- パラメーター:
attributeName
- 属性名- 戻り値:
- バイトとしての値
- 例外:
NoSuchElementExceptionSE
- 一致する属性がない場合
getByteArray
アノテーションから必要なバイト配列属性値を取得します。- パラメーター:
attributeName
- 属性名- 戻り値:
- バイト配列としての値
- 例外:
NoSuchElementExceptionSE
- 一致する属性がない場合
getBoolean
アノテーションから必要なブール属性値を取得します。- パラメーター:
attributeName
- 属性名- 戻り値:
- ブール値
- 例外:
NoSuchElementExceptionSE
- 一致する属性がない場合
getBooleanArray
アノテーションから必要なブール配列属性値を取得します。- パラメーター:
attributeName
- 属性名- 戻り値:
- ブール配列としての値
- 例外:
NoSuchElementExceptionSE
- 一致する属性がない場合
getChar
アノテーションから必要な char 属性値を取得します。- パラメーター:
attributeName
- 属性名- 戻り値:
- char としての値
- 例外:
NoSuchElementExceptionSE
- 一致する属性がない場合
getCharArray
アノテーションから必要な文字配列属性値を取得します。- パラメーター:
attributeName
- 属性名- 戻り値:
- char 配列としての値
- 例外:
NoSuchElementExceptionSE
- 一致する属性がない場合
getShort
アノテーションから必要な短い属性値を取得します。- パラメーター:
attributeName
- 属性名- 戻り値:
- short としての値
- 例外:
NoSuchElementExceptionSE
- 一致する属性がない場合
getShortArray
アノテーションから必要な短い配列属性値を取得します。- パラメーター:
attributeName
- 属性名- 戻り値:
- 短い配列としての値
- 例外:
NoSuchElementExceptionSE
- 一致する属性がない場合
getInt
アノテーションから必要な int 属性値を取得します。- パラメーター:
attributeName
- 属性名- 戻り値:
- int としての値
- 例外:
NoSuchElementExceptionSE
- 一致する属性がない場合
getIntArray
アノテーションから必要な int 配列属性値を取得します。- パラメーター:
attributeName
- 属性名- 戻り値:
- int 配列としての値
- 例外:
NoSuchElementExceptionSE
- 一致する属性がない場合
getLong
アノテーションから必要な長い属性値を取得します。- パラメーター:
attributeName
- 属性名- 戻り値:
- long としての値
- 例外:
NoSuchElementExceptionSE
- 一致する属性がない場合
getLongArray
アノテーションから必要な長い配列属性値を取得します。- パラメーター:
attributeName
- 属性名- 戻り値:
- long 配列としての値
- 例外:
NoSuchElementExceptionSE
- 一致する属性がない場合
getDouble
アノテーションから必要な double 属性値を取得します。- パラメーター:
attributeName
- 属性名- 戻り値:
- double としての値
- 例外:
NoSuchElementExceptionSE
- 一致する属性がない場合
getDoubleArray
アノテーションから必要な二重配列属性値を取得します。- パラメーター:
attributeName
- 属性名- 戻り値:
- double 配列としての値
- 例外:
NoSuchElementExceptionSE
- 一致する属性がない場合
getFloat
アノテーションから必要なフロート属性値を取得します。- パラメーター:
attributeName
- 属性名- 戻り値:
- float としての値
- 例外:
NoSuchElementExceptionSE
- 一致する属性がない場合
getFloatArray
アノテーションから必要なフロート配列属性値を取得します。- パラメーター:
attributeName
- 属性名- 戻り値:
- float 配列としての値
- 例外:
NoSuchElementExceptionSE
- 一致する属性がない場合
getString
アノテーションから必要な文字列属性値を取得します。- パラメーター:
attributeName
- 属性名- 戻り値:
- 文字列としての値
- 例外:
NoSuchElementExceptionSE
- 一致する属性がない場合
getStringArray
アノテーションから必要な文字列配列属性値を取得します。- パラメーター:
attributeName
- 属性名- 戻り値:
- 文字列配列としての値
- 例外:
NoSuchElementExceptionSE
- 一致する属性がない場合
getClass
アノテーションから必要なクラス属性値を取得します。- パラメーター:
attributeName
- 属性名- 戻り値:
- クラスとしての値
- 例外:
NoSuchElementExceptionSE
- 一致する属性がない場合
getClassArray
アノテーションから必要なクラス配列属性値を取得します。- パラメーター:
attributeName
- 属性名- 戻り値:
- クラス配列としての値
- 例外:
NoSuchElementExceptionSE
- 一致する属性がない場合
getEnum
<E extends EnumSE<E>> E getEnum(StringSE attributeName, ClassSE<E> type) throws NoSuchElementExceptionSE アノテーションから必要な列挙型属性値を取得します。- パラメーター:
attributeName
- 属性名type
- 列挙型- 戻り値:
- 列挙型としての値
- 例外:
NoSuchElementExceptionSE
- 一致する属性がない場合
getEnumArray
<E extends EnumSE<E>> E[] getEnumArray(StringSE attributeName, ClassSE<E> type) throws NoSuchElementExceptionSE アノテーションから必要な列挙型配列属性値を取得します。- パラメーター:
attributeName
- 属性名type
- 列挙型- 戻り値:
- 列挙型配列としての値
- 例外:
NoSuchElementExceptionSE
- 一致する属性がない場合
getAnnotation
<T extends AnnotationSE> MergedAnnotation<T> getAnnotation(StringSE attributeName, ClassSE<T> type) throws NoSuchElementExceptionSE アノテーションから必要なアノテーション属性値を取得します。- パラメーター:
attributeName
- 属性名type
- アノテーション型- 戻り値:
MergedAnnotation
としての値- 例外:
NoSuchElementExceptionSE
- 一致する属性がない場合
getAnnotationArray
<T extends AnnotationSE> MergedAnnotation<T>[] getAnnotationArray(StringSE attributeName, ClassSE<T> type) throws NoSuchElementExceptionSE 必要なアノテーション配列属性値をアノテーションから取得します。- パラメーター:
attributeName
- 属性名type
- アノテーション型- 戻り値:
MergedAnnotation
配列としての値- 例外:
NoSuchElementExceptionSE
- 一致する属性がない場合
getValue
アノテーションからオプションの属性値を取得します。- パラメーター:
attributeName
- 属性名- 戻り値:
- オプションの値、または一致する属性がない場合は
Optional.empty()
getValue
アノテーションからオプションの属性値を取得します。- パラメーター:
attributeName
- 属性名type
- 属性型。基になる属性型またはObject.class
と互換性がある必要があります。- 戻り値:
- オプションの値、または一致する属性がない場合は
Optional.empty()
getDefaultValue
アノテーション宣言で指定されているように、アノテーションからデフォルトの属性値を取得します。- パラメーター:
attributeName
- 属性名- 戻り値:
- デフォルト値のオプション、または一致する属性がないか定義済みのデフォルトがない場合は
Optional.empty()
getDefaultValue
アノテーション宣言で指定されているように、アノテーションからデフォルトの属性値を取得します。- パラメーター:
attributeName
- 属性名type
- 属性型。基になる属性型またはObject.class
と互換性がある必要があります。- 戻り値:
- デフォルト値のオプション、または一致する属性がないか定義済みのデフォルトがない場合は
Optional.empty()
filterDefaultValues
MergedAnnotation<A> filterDefaultValues()デフォルト値が削除されたすべての属性を使用して、アノテーションの新しいビューを作成します。- 戻り値:
- デフォルト値を持つ属性のないアノテーションのフィルターされたビュー
- 関連事項:
filterAttributes
指定された述語に一致する属性のみを持つアノテーションの新しいビューを作成します。- パラメーター:
predicate
- 属性名をフィルタリングするために使用される述語- 戻り値:
- アノテーションのフィルターされたビュー
- 関連事項:
withNonMergedAttributes
MergedAnnotation<A> withNonMergedAttributes()マージされていない属性値を公開するアノテーションの新しいビューを作成します。このビューのメソッドは、エイリアスミラーリングルールのみが適用された属性値を返します。
meta-source
属性へのエイリアスは適用されません。- 戻り値:
- アノテーションのマージされていないビュー
asAnnotationAttributes
このマージされたアノテーションから新しい可変AnnotationAttributes
インスタンスを作成します。adaptations
を使用して、値の追加方法を変更できます。- パラメーター:
adaptations
- アノテーション値に適用する必要がある適応- 戻り値:
- 属性と値を含む不変のマップ
asMap
すべてのアノテーション属性を含む不変のMap
SE を取得します。adaptations
を使用して、値の追加方法を変更できます。- パラメーター:
adaptations
- アノテーション値に適用する必要がある適応- 戻り値:
- 属性と値を含む不変のマップ
asMap
<T extends MapSE<StringSE,ObjectSE>> T asMap(FunctionSE<MergedAnnotation<?>, T> factory, MergedAnnotation.Adapt... adaptations) すべてのアノテーション属性を含む、指定された型の新しいMap
SE インスタンスを作成します。adaptations
を使用して、値の追加方法を変更できます。- パラメーター:
factory
- 地図ファクトリadaptations
- アノテーション値に適用する必要がある適応- 戻り値:
- 属性と値を含むマップ
synthesize
コードで直接使用できるこのマージされたアノテーションの型安全な合成バージョンを作成します。結果は JDK
Proxy
SE を使用して合成され、その結果、最初に呼び出されたときに計算コストが発生する可能性があります。このマージされたアノテーションがアノテーション属性またはデフォルトの属性値のマップから作成された場合、それらの属性は常にアノテーションインスタンスに合成されます。
このマージされたアノテーションがアノテーションインスタンスから作成された場合、合成可能でない場合、そのアノテーションは変更されずに返されます。アノテーションがまだ合成されておらず、次のいずれかに該当する場合、アノテーションは合成可能であると見なされます。
- アノテーションは、
@AliasFor
でアノテーションが付けられた属性を宣言します。 - アノテーションは、メタアノテーションの規則ベースのアノテーション属性オーバーライドに依存する合成アノテーションです。
- アノテーションは、アノテーションである属性、またはそれ自体が合成可能なアノテーションの配列を宣言します。
- 戻り値:
- アノテーションの合成バージョンまたは変更されていない元のアノテーション
- 例外:
NoSuchElementExceptionSE
- 不足しているアノテーション
- アノテーションは、
synthesize
OptionalSE<A> synthesize(PredicateSE<? super MergedAnnotation<A>> condition) throws NoSuchElementExceptionSE 必要に応じて、条件述語に基づいて、このアノテーションの型安全な合成バージョンを作成します。結果は JDK
Proxy
SE を使用して合成され、その結果、最初に呼び出されたときに計算コストが発生する可能性があります。合成可能と見なされるものの説明については、
synthesize()
のドキュメントを参照してください。- パラメーター:
condition
- アノテーションを合成できるかどうかを判断するテスト- 戻り値:
- アノテーションの合成バージョンを含むオプション、または条件が一致しない場合は空のオプション
- 例外:
NoSuchElementExceptionSE
- 不足しているアノテーション- 関連事項:
missing
欠落しているアノテーション(つまり、存在しないアノテーション)を表すMergedAnnotation
を作成します。- 戻り値:
- 不足しているアノテーションを表すインスタンス
from
指定されたアノテーションから新しいMergedAnnotation
インスタンスを作成します。- パラメーター:
annotation
- 含めるアノテーション- 戻り値:
- アノテーションを含む
MergedAnnotation
インスタンス
from
指定されたアノテーションから新しいMergedAnnotation
インスタンスを作成します。- パラメーター:
source
- アノテーションのソース。このソースは、情報とロギングのためにのみ使用されます。指定されたアノテーションを実際に含む必要はなく、検索されません。annotation
- 含めるアノテーション- 戻り値:
- アノテーションの
MergedAnnotation
インスタンス
of
指定されたアノテーション型の新しいMergedAnnotation
インスタンスを作成します。結果のアノテーションには属性値はありませんが、デフォルト値のクエリに引き続き使用できます。- パラメーター:
annotationType
- アノテーション型- 戻り値:
- アノテーションの
MergedAnnotation
インスタンス
of
static <A extends AnnotationSE> MergedAnnotation<A> of(ClassSE<A> annotationType, @Nullable MapSE<StringSE, ?> attributes) マップが提供する属性値を使用して、指定されたアノテーション型の新しいMergedAnnotation
インスタンスを作成します。- パラメーター:
annotationType
- アノテーション型attributes
- アノテーション属性、またはデフォルト値のみを使用する場合はnull
- 戻り値:
- アノテーションと属性の
MergedAnnotation
インスタンス - 関連事項:
of
static <A extends AnnotationSE> MergedAnnotation<A> of(@Nullable AnnotatedElementSE source, ClassSE<A> annotationType, @Nullable MapSE<StringSE, ?> attributes) マップが提供する属性値を使用して、指定されたアノテーション型の新しいMergedAnnotation
インスタンスを作成します。- パラメーター:
source
- アノテーションのソース。このソースは、情報とロギングのためにのみ使用されます。指定されたアノテーションを実際に含む必要はなく、検索されません。annotationType
- アノテーション型attributes
- アノテーション属性、またはデフォルト値のみを使用する場合はnull
- 戻り値:
- アノテーションと属性の
MergedAnnotation
インスタンス
of
static <A extends AnnotationSE> MergedAnnotation<A> of(@Nullable ClassLoaderSE classLoader, @Nullable ObjectSE source, ClassSE<A> annotationType, @Nullable MapSE<StringSE, ?> attributes) マップが提供する属性値を使用して、指定されたアノテーション型の新しいMergedAnnotation
インスタンスを作成します。- パラメーター:
classLoader
- クラス属性を解決するために使用されるクラスローダーsource
- アノテーションのソース。このソースは、情報とロギングのためにのみ使用されます。指定されたアノテーションを実際に含む必要はなく、検索されません。annotationType
- アノテーション型attributes
- アノテーション属性、またはデフォルト値のみを使用する場合はnull
- 戻り値:
- アノテーションと属性の
MergedAnnotation
インスタンス