インターフェース MergedAnnotation<A extends AnnotationSE>

型パラメーター:
A - アノテーション型

public interface MergedAnnotation<A extends AnnotationSE>
MergedAnnotations コレクションから返された 1 つのマージされたアノテーション。属性値がさまざまなソース値から「マージ」された可能性のあるアノテーションのビューを表示します。

属性値には、さまざまな get メソッドを使用してアクセスできます。例: int 属性にアクセスするには、getInt(String) メソッドが使用されます。

アクセス時に属性値は変換されないことに注意してください。例: 基本となる属性が int の場合、getString(String) を呼び出すことはできません。このルールの唯一の例外は、Class および Class[] の値です。これらの値は、String および String[] としてそれぞれアクセスされ、潜在的な初期クラスの初期化を防止します。

必要に応じて、MergedAnnotation を合成して実際の AnnotationSE に戻すことができます。

導入:
5.2
作成者:
Phillip Webb, Juergen Hoeller, Sam Brannen
関連事項:
  • フィールドの詳細

  • メソッドの詳細

    • getType

      ClassSE<A> getType()
      実際のアノテーション型の Class 参照を取得します。
      戻り値:
      アノテーション型
    • isPresent

      boolean isPresent()
      アノテーションがソースに存在するかどうかを確認します。使用される MergedAnnotations.SearchStrategy のコンテキスト内で直接存在 するアノテーションとメタ提示アノテーションを考慮します。
      戻り値:
      アノテーションが存在する場合は true 
    • isDirectlyPresent

      boolean isDirectlyPresent()
      アノテーションがソースに直接存在するかどうかを確認します。

      直接存在するアノテーションは、ユーザーが明示的に宣言したアノテーションであり、メタ提示または @InheritedSE ではありません。

      戻り値:
      アノテーションが直接存在する場合は true 
    • isMetaPresent

      boolean isMetaPresent()
      アノテーションがソースにメタ表示されているかどうかを確認します。

      メタ提示アノテーションは、ユーザーが明示的に宣言していないアノテーションですが、アノテーション階層のどこかでメタアノテーションとして使用されています。

      戻り値:
      アノテーションがメタ表示の場合は true 
    • getDistance

      int getDistance()
      メタアノテーションとしての使用に関連するこのアノテーションの距離を取得します。

      直接宣言されたアノテーションの距離は 0、メタアノテーションの距離は 1、メタアノテーションのメタアノテーションの距離は 2 などです。欠落したアノテーションは常に -1 の距離を返します。

      戻り値:
      アノテーション距離、またはアノテーションが欠落している場合は -1 
    • getAggregateIndex

      int getAggregateIndex()
      このアノテーションを含む集約コレクションのインデックスを取得します。

      アノテーションのストリームを並べ替えるために使用できます。たとえば、スーパークラスまたはインターフェースで宣言されたアノテーションにより高い優先度を与えることができます。欠落したアノテーションは常に -1 の集約インデックスを返します。

      戻り値:
      集約インデックス(0 から始まる)、またはアノテーションがない場合は -1 
    • getSource

      @Nullable ObjectSE getSource()
      最終的にルートアノテーションを宣言したソースを取得します。ソースが不明の場合は null を取得します。

      このマージされたアノテーションが from および AnnotatedElementSE で作成された場合、このソースは同じ型の要素になります。アノテーションをリフレクションを使用せずにロードした場合、ソースはどの型でもかまいませんが、適切な toString() が必要です。メタアノテーションは常に root と同じソースを返します。

      戻り値:
      ソース、または null
    • getMetaSource

      @Nullable MergedAnnotation<?> getMetaSource()
      メタアノテーションのソースを取得します。アノテーションがメタ表示でない場合は null を取得します。

      メタソースは、このアノテーションでメタアノテーションが付けられたアノテーションです。

      戻り値:
      メタアノテーションソースまたは null
      関連事項:
    • getRoot

      MergedAnnotation<?> getRoot()
      ソースで直接宣言されたルートアノテーション、つまり distance 0 アノテーションを取得します。
      戻り値:
      ルートアノテーション
      関連事項:
    • getMetaTypes

      ListSE<ClassSE<? extends AnnotationSE>> getMetaTypes()
      このアノテーションから root までのアノテーション階層内のアノテーション型の完全なリストを取得します。

      マージされたアノテーションインスタンスを一意に識別するための便利な方法を提供します。

      戻り値:
      アノテーションのメタ型
      関連事項:
    • hasNonDefaultValue

      boolean hasNonDefaultValue(StringSE attributeName)
      アノテーション宣言と比較したときに、指定された属性名にデフォルト以外の値があるかどうかを判別します。
      パラメーター:
      attributeName - 属性名
      戻り値:
      true (属性値がデフォルト値と異なる場合)
    • hasDefaultValue

      boolean hasDefaultValue(StringSE attributeName) throws NoSuchElementExceptionSE
      アノテーション宣言と比較したときに、指定された属性名にデフォルト値があるかどうかを判別します。
      パラメーター:
      attributeName - 属性名
      戻り値:
      true (属性値がデフォルト値と同じ場合)
      例外:
      NoSuchElementExceptionSE
    • getByte

      byte getByte(StringSE attributeName) throws NoSuchElementExceptionSE
      アノテーションから必要なバイト属性値を取得します。
      パラメーター:
      attributeName - 属性名
      戻り値:
      バイトとしての値
      例外:
      NoSuchElementExceptionSE - 一致する属性がない場合
    • getByteArray

      byte[] getByteArray(StringSE attributeName) throws NoSuchElementExceptionSE
      アノテーションから必要なバイト配列属性値を取得します。
      パラメーター:
      attributeName - 属性名
      戻り値:
      バイト配列としての値
      例外:
      NoSuchElementExceptionSE - 一致する属性がない場合
    • getBoolean

      boolean getBoolean(StringSE attributeName) throws NoSuchElementExceptionSE
      アノテーションから必要なブール属性値を取得します。
      パラメーター:
      attributeName - 属性名
      戻り値:
      ブール値
      例外:
      NoSuchElementExceptionSE - 一致する属性がない場合
    • getBooleanArray

      boolean[] getBooleanArray(StringSE attributeName) throws NoSuchElementExceptionSE
      アノテーションから必要なブール配列属性値を取得します。
      パラメーター:
      attributeName - 属性名
      戻り値:
      ブール配列としての値
      例外:
      NoSuchElementExceptionSE - 一致する属性がない場合
    • getChar

      char getChar(StringSE attributeName) throws NoSuchElementExceptionSE
      アノテーションから必要な char 属性値を取得します。
      パラメーター:
      attributeName - 属性名
      戻り値:
      char としての値
      例外:
      NoSuchElementExceptionSE - 一致する属性がない場合
    • getCharArray

      char[] getCharArray(StringSE attributeName) throws NoSuchElementExceptionSE
      アノテーションから必要な文字配列属性値を取得します。
      パラメーター:
      attributeName - 属性名
      戻り値:
      char 配列としての値
      例外:
      NoSuchElementExceptionSE - 一致する属性がない場合
    • getShort

      short getShort(StringSE attributeName) throws NoSuchElementExceptionSE
      アノテーションから必要な短い属性値を取得します。
      パラメーター:
      attributeName - 属性名
      戻り値:
      short としての値
      例外:
      NoSuchElementExceptionSE - 一致する属性がない場合
    • getShortArray

      short[] getShortArray(StringSE attributeName) throws NoSuchElementExceptionSE
      アノテーションから必要な短い配列属性値を取得します。
      パラメーター:
      attributeName - 属性名
      戻り値:
      短い配列としての値
      例外:
      NoSuchElementExceptionSE - 一致する属性がない場合
    • getInt

      int getInt(StringSE attributeName) throws NoSuchElementExceptionSE
      アノテーションから必要な int 属性値を取得します。
      パラメーター:
      attributeName - 属性名
      戻り値:
      int としての値
      例外:
      NoSuchElementExceptionSE - 一致する属性がない場合
    • getIntArray

      int[] getIntArray(StringSE attributeName) throws NoSuchElementExceptionSE
      アノテーションから必要な int 配列属性値を取得します。
      パラメーター:
      attributeName - 属性名
      戻り値:
      int 配列としての値
      例外:
      NoSuchElementExceptionSE - 一致する属性がない場合
    • getLong

      long getLong(StringSE attributeName) throws NoSuchElementExceptionSE
      アノテーションから必要な長い属性値を取得します。
      パラメーター:
      attributeName - 属性名
      戻り値:
      long としての値
      例外:
      NoSuchElementExceptionSE - 一致する属性がない場合
    • getLongArray

      long[] getLongArray(StringSE attributeName) throws NoSuchElementExceptionSE
      アノテーションから必要な長い配列属性値を取得します。
      パラメーター:
      attributeName - 属性名
      戻り値:
      long 配列としての値
      例外:
      NoSuchElementExceptionSE - 一致する属性がない場合
    • getDouble

      double getDouble(StringSE attributeName) throws NoSuchElementExceptionSE
      アノテーションから必要な double 属性値を取得します。
      パラメーター:
      attributeName - 属性名
      戻り値:
      double としての値
      例外:
      NoSuchElementExceptionSE - 一致する属性がない場合
    • getDoubleArray

      double[] getDoubleArray(StringSE attributeName) throws NoSuchElementExceptionSE
      アノテーションから必要な二重配列属性値を取得します。
      パラメーター:
      attributeName - 属性名
      戻り値:
      double 配列としての値
      例外:
      NoSuchElementExceptionSE - 一致する属性がない場合
    • getFloat

      float getFloat(StringSE attributeName) throws NoSuchElementExceptionSE
      アノテーションから必要なフロート属性値を取得します。
      パラメーター:
      attributeName - 属性名
      戻り値:
      float としての値
      例外:
      NoSuchElementExceptionSE - 一致する属性がない場合
    • getFloatArray

      float[] getFloatArray(StringSE attributeName) throws NoSuchElementExceptionSE
      アノテーションから必要なフロート配列属性値を取得します。
      パラメーター:
      attributeName - 属性名
      戻り値:
      float 配列としての値
      例外:
      NoSuchElementExceptionSE - 一致する属性がない場合
    • getString

      StringSE getString(StringSE attributeName) throws NoSuchElementExceptionSE
      アノテーションから必要な文字列属性値を取得します。
      パラメーター:
      attributeName - 属性名
      戻り値:
      文字列としての値
      例外:
      NoSuchElementExceptionSE - 一致する属性がない場合
    • getStringArray

      StringSE[] getStringArray(StringSE attributeName) throws NoSuchElementExceptionSE
      アノテーションから必要な文字列配列属性値を取得します。
      パラメーター:
      attributeName - 属性名
      戻り値:
      文字列配列としての値
      例外:
      NoSuchElementExceptionSE - 一致する属性がない場合
    • getClass

      ClassSE<?> getClass(StringSE attributeName) throws NoSuchElementExceptionSE
      アノテーションから必要なクラス属性値を取得します。
      パラメーター:
      attributeName - 属性名
      戻り値:
      クラスとしての値
      例外:
      NoSuchElementExceptionSE - 一致する属性がない場合
    • getClassArray

      ClassSE<?>[] getClassArray(StringSE attributeName) throws NoSuchElementExceptionSE
      アノテーションから必要なクラス配列属性値を取得します。
      パラメーター:
      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

      OptionalSE<ObjectSE> getValue(StringSE attributeName)
      アノテーションからオプションの属性値を取得します。
      パラメーター:
      attributeName - 属性名
      戻り値:
      オプションの値、または一致する属性がない場合は Optional.empty()
    • getValue

      <T> OptionalSE<T> getValue(StringSE attributeName, ClassSE<T> type)
      アノテーションからオプションの属性値を取得します。
      パラメーター:
      attributeName - 属性名
      type - 属性型。基になる属性型または Object.class と互換性がある必要があります。
      戻り値:
      オプションの値、または一致する属性がない場合は Optional.empty()
    • getDefaultValue

      OptionalSE<ObjectSE> getDefaultValue(StringSE attributeName)
      アノテーション宣言で指定されているように、アノテーションからデフォルトの属性値を取得します。
      パラメーター:
      attributeName - 属性名
      戻り値:
      デフォルト値のオプション、または一致する属性がないか定義済みのデフォルトがない場合は Optional.empty()
    • getDefaultValue

      <T> OptionalSE<T> getDefaultValue(StringSE attributeName, ClassSE<T> type)
      アノテーション宣言で指定されているように、アノテーションからデフォルトの属性値を取得します。
      パラメーター:
      attributeName - 属性名
      type - 属性型。基になる属性型または Object.class と互換性がある必要があります。
      戻り値:
      デフォルト値のオプション、または一致する属性がないか定義済みのデフォルトがない場合は Optional.empty()
    • filterDefaultValues

      MergedAnnotation<A> filterDefaultValues()
      デフォルト値が削除されたすべての属性を使用して、アノテーションの新しいビューを作成します。
      戻り値:
      デフォルト値を持つ属性のないアノテーションのフィルターされたビュー
      関連事項:
    • filterAttributes

      MergedAnnotation<A> filterAttributes(PredicateSE<StringSE> predicate)
      指定された述語に一致する属性のみを持つアノテーションの新しいビューを作成します。
      パラメーター:
      predicate - 属性名をフィルタリングするために使用される述語
      戻り値:
      アノテーションのフィルターされたビュー
      関連事項:
    • withNonMergedAttributes

      MergedAnnotation<A> withNonMergedAttributes()
      マージされていない属性値を公開するアノテーションの新しいビューを作成します。

      このビューのメソッドは、エイリアスミラーリングルールのみが適用された属性値を返します。meta-source 属性へのエイリアスは適用されません。

      戻り値:
      アノテーションのマージされていないビュー
    • asAnnotationAttributes

      AnnotationAttributes asAnnotationAttributes(MergedAnnotation.Adapt... adaptations)
      このマージされたアノテーションから新しい可変 AnnotationAttributes インスタンスを作成します。

      adaptations を使用して、値の追加方法を変更できます。

      パラメーター:
      adaptations - アノテーション値に適用する必要がある適応
      戻り値:
      属性と値を含む不変のマップ
    • asMap

      すべてのアノテーション属性を含む不変の MapSE を取得します。

      adaptations を使用して、値の追加方法を変更できます。

      パラメーター:
      adaptations - アノテーション値に適用する必要がある適応
      戻り値:
      属性と値を含む不変のマップ
    • asMap

      <T extends MapSE<StringSE, ObjectSE>> T asMap(FunctionSE<MergedAnnotation<?>,T> factory, MergedAnnotation.Adapt... adaptations)
      すべてのアノテーション属性を含む、指定された型の新しい MapSE インスタンスを作成します。

      adaptations を使用して、値の追加方法を変更できます。

      パラメーター:
      factory - 地図ファクトリ
      adaptations - アノテーション値に適用する必要がある適応
      戻り値:
      属性と値を含むマップ
    • synthesize

      A synthesize() throws NoSuchElementExceptionSE
      コードで直接使用できるこのマージされたアノテーションの型安全な合成バージョンを作成します。

      結果は JDK ProxySE を使用して合成され、その結果、最初に呼び出されたときに計算コストが発生する可能性があります。

      このマージされたアノテーションがアノテーション属性またはデフォルトの属性値のマップから作成された場合、それらの属性は常にアノテーションインスタンスに合成されます。

      このマージされたアノテーションがアノテーションインスタンスから作成された場合、合成可能でない場合、そのアノテーションは変更されずに返されます。アノテーションがまだ合成されておらず、次のいずれかに該当する場合、アノテーションは合成可能であると見なされます。

      • アノテーションは、@AliasFor でアノテーションが付けられた属性を宣言します。
      • アノテーションは、メタアノテーションの規則ベースのアノテーション属性オーバーライドに依存する合成アノテーションです。
      • アノテーションは、アノテーションである属性、またはそれ自体が合成可能なアノテーションの配列を宣言します。
      戻り値:
      アノテーションの合成バージョンまたは変更されていない元のアノテーション
      例外:
      NoSuchElementExceptionSE - 不足しているアノテーション
    • synthesize

      OptionalSE<A> synthesize(PredicateSE<? super MergedAnnotation<A>> condition) throws NoSuchElementExceptionSE
      必要に応じて、条件述語に基づいて、このアノテーションの型安全な合成バージョンを作成します。

      結果は JDK ProxySE を使用して合成され、その結果、最初に呼び出されたときに計算コストが発生する可能性があります。

      合成可能と見なされるものの説明については、synthesize() のドキュメントを参照してください。

      パラメーター:
      condition - アノテーションを合成できるかどうかを判断するテスト
      戻り値:
      アノテーションの合成バージョンを含むオプション、または条件が一致しない場合は空のオプション
      例外:
      NoSuchElementExceptionSE - 不足しているアノテーション
      関連事項:
    • missing

      static <A extends AnnotationSE> MergedAnnotation<A> missing()
      欠落しているアノテーション(つまり、存在しないアノテーション)を表す MergedAnnotation を作成します。
      戻り値:
      不足しているアノテーションを表すインスタンス
    • from

      static <A extends AnnotationSE> MergedAnnotation<A> from(A annotation)
      指定されたアノテーションから新しい MergedAnnotation インスタンスを作成します。
      パラメーター:
      annotation - 含めるアノテーション
      戻り値:
      アノテーションを含む MergedAnnotation インスタンス
    • from

      static <A extends AnnotationSE> MergedAnnotation<A> from(@Nullable ObjectSE source, A annotation)
      指定されたアノテーションから新しい MergedAnnotation インスタンスを作成します。
      パラメーター:
      source - アノテーションのソース。このソースは、情報とロギングのためにのみ使用されます。指定されたアノテーションを実際に含む必要はなく、検索されません。
      annotation - 含めるアノテーション
      戻り値:
      アノテーションの MergedAnnotation インスタンス
    • of

      static <A extends AnnotationSE> MergedAnnotation<A> of(ClassSE<A> annotationType)
      指定されたアノテーション型の新しい 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 インスタンス