クラス RepeatableContainers

java.lang.ObjectSE
org.springframework.core.annotation.RepeatableContainers

public abstract class RepeatableContainers extends ObjectSE
コンテナーアノテーション内で繰り返し可能なアノテーションを見つけるために使用される戦略。

RepeatableContainers.standardRepeatables() は、Java の @RepeatableSE サポートを考慮し、ほとんどの状況に適したデフォルトの戦略を提供します。

@Repeatable を使用しない繰り返し可能なアノテーション型を登録する必要がある場合は、通常、standardRepeatables() と plus(Class, Class) を組み合わせて使用します。plus() を複数回呼び出して連鎖させることで、複数の繰り返し可能型 / コンテナー型のペアを登録できます。例:

RepeatableContainers repeatableContainers =
    RepeatableContainers.standardRepeatables()
        .plus(MyRepeatable1.class, MyContainer1.class)
        .plus(MyRepeatable2.class, MyContainer2.class);

Java の @Repeatable サポートが不要であることが確実な特殊なユースケースでは、RepeatableContainers.explicitRepeatable() を使用して、明示的な繰り返し可能型 / コンテナー型ペアのみをサポートする RepeatableContainers のインスタンスを作成できます。standardRepeatables() と同様に、plus() を使用して追加の繰り返し可能型 / コンテナー型ペアを登録できます。たとえば、次のようになります。

RepeatableContainers repeatableContainers =
    RepeatableContainers.explicitRepeatable(MyRepeatable1.class, MyContainer1.class)
        .plus(MyRepeatable2.class, MyContainer2.class);

繰り返し可能なアノテーションのサポートを完全に無効にするには、RepeatableContainers.none() を使用します。

導入:
5.2
作成者:
Phillip Webb, Sam Brannen
  • メソッドの詳細

    • plus

      public final RepeatableContainers plus(ClassSE<? extends AnnotationSE> repeatable, ClassSE<? extends AnnotationSE> container)
      繰り返し可能なアノテーション型とコンテナーアノテーション型のペアを登録します。

      例については、クラスレベルの javadoc を参照してください。

      パラメーター:
      repeatable - 繰り返し可能なアノテーション型
      container - コンテナーのアノテーション型
      戻り値:
      現在のインスタンスに連鎖された新しい RepeatableContainers インスタンス
      導入:
      7.0
    • and

      @DeprecatedSE(since="7.0") public RepeatableContainers and(ClassSE<? extends AnnotationSE> container, ClassSE<? extends AnnotationSE> repeatable)
      使用すべきではありません。
      Spring Framework 7.0 現在、plus(Class, Class) を推奨
      コンテナーと繰り返し可能なアノテーション型のペアを登録します。

      警告 : このメソッドに提供される引数は、plus(Class, Class)explicitRepeatable(Class, Class)of(Class, Class) に提供される引数の逆の順序になります。

      パラメーター:
      container - コンテナーのアノテーション型
      repeatable - 繰り返し可能なアノテーション型
      戻り値:
      現在のインスタンスに連鎖された新しい RepeatableContainers インスタンス
    • equals

      @Contract("null -> false") public boolean equals(@Nullable ObjectSE other)
      オーバーライド:
      クラス ObjectSEequalsSE 
    • hashCode

      public int hashCode()
      オーバーライド:
      クラス ObjectSEhashCode 
    • standardRepeatables

      public static RepeatableContainers standardRepeatables()
      Java の @RepeatableSE アノテーションのセマンティクスに従って繰り返しアノテーションを検索する RepeatableContainers インスタンスを作成します。

      例については、クラスレベルの javadoc を参照してください。

      戻り値:
      @Repeatable をサポートする RepeatableContainers インスタンス
      関連事項:
    • explicitRepeatable

      public static RepeatableContainers explicitRepeatable(ClassSE<? extends AnnotationSE> repeatable, @Nullable ClassSE<? extends AnnotationSE> container)
      提供された繰り返し可能なアノテーション型とコンテナーアノテーション型を考慮して、繰り返しアノテーションを検索する RepeatableContainers インスタンスを作成します。

      警告 : このファクトリメソッドによって返される RepeatableContainers インスタンスは、Java の @RepeatableSE サポートに準拠していません。標準の @Repeatable サポートには standardRepeatables() を使用してください。オプションで plus(Class, Class) と組み合わせて使用することもできます。

      指定されたコンテナーアノテーション型が null でない場合、繰り返し可能なアノテーションの配列を返す value 属性を宣言する必要があります。指定されたコンテナーアノテーション型が null の場合、コンテナーは repeatable アノテーション型の @Repeatable アノテーションを調べることで推測されます。

      例については、クラスレベルの javadoc を参照してください。

      パラメーター:
      repeatable - 繰り返し可能なアノテーション型
      container - コンテナーアノテーション型または null
      戻り値:
      @RepeatableSE をサポートしない RepeatableContainers インスタンス
      例外:
      IllegalArgumentExceptionSE - 提供されたコンテナー型が null で、アノテーション型が繰り返し可能なアノテーションでない場合
      AnnotationConfigurationException - 提供されたコンテナー型が、繰り返し可能なアノテーション用に適切に構成されたコンテナーでない場合
      導入:
      7.0
      関連事項:
    • of

      @DeprecatedSE(since="7.0") public static RepeatableContainers of(ClassSE<? extends AnnotationSE> repeatable, @Nullable ClassSE<? extends AnnotationSE> container)
      使用すべきではありません。
      Spring Framework 7.0 現在、explicitRepeatable(Class, Class) を推奨
      提供された繰り返し可能なアノテーション型とコンテナーアノテーション型を考慮して、繰り返しアノテーションを検索する RepeatableContainers インスタンスを作成します。

      警告 : このファクトリメソッドによって返される RepeatableContainers インスタンスは、Java の @RepeatableSE サポートに準拠していません。標準の @Repeatable サポートには standardRepeatables() を使用してください。オプションで plus(Class, Class) と組み合わせて使用することもできます。

      警告 : このメソッドに提供される引数は、and(Class, Class) に提供される引数の逆の順序になります。

      指定されたコンテナーアノテーション型が null でない場合、繰り返し可能なアノテーションの配列を返す value 属性を宣言する必要があります。指定されたコンテナーアノテーション型が null の場合、コンテナーは repeatable アノテーション型の @Repeatable アノテーションを調べることで推測されます。

      パラメーター:
      repeatable - 繰り返し可能なアノテーション型
      container - コンテナーアノテーション型または null
      戻り値:
      @RepeatableSE をサポートしない RepeatableContainers インスタンス
      例外:
      IllegalArgumentExceptionSE - 提供されたコンテナー型が null で、アノテーション型が繰り返し可能なアノテーションでない場合
      AnnotationConfigurationException - 提供されたコンテナー型が、繰り返し可能なアノテーション用に適切に構成されたコンテナーでない場合
    • none

      public static RepeatableContainers none()
      繰り返し可能なアノテーションをサポートしない RepeatableContainers インスタンスを作成します。

      ただし、このメソッドから返される RepeatableContainers インスタンスでは、plus(Class, Class) が引き続き呼び出される可能性があることに注意してください。

      例と詳細については、クラスレベルの javadoc を参照してください。

      戻り値:
      繰り返し可能なアノテーションをサポートしない RepeatableContainers インスタンス