パッケージ org.springframework.util

クラス Assert

java.lang.ObjectSE
org.springframework.util.Assert

public abstract class Assert extends ObjectSE
引数の検証を支援するアサーションユーティリティクラス。

実行時にプログラマーのエラーを早期かつ明確に識別できます。

例: public メソッドの規約で null 引数が許可されていない場合、Assert を使用してその規約を検証できます。これを行うと、契約違反が発生したときに明確に示され、クラスの不変条件が保護されます。

通常は、構成プロパティではなくメソッドの引数を検証し、構成エラーではなくプログラマエラーであるケースをチェックするために使用されます。構成初期化コードとは対照的に、このようなメソッドではデフォルトにフォールバックしても意味がありません。

このクラスは、JUnit のアサーションライブラリに似ています。引数値が無効と見なされると、IllegalArgumentExceptionSE がスローされます(通常)。例:

 Assert.notNull(clazz, "The class must not be null");
 Assert.isTrue(i > 0, "The value must be greater than zero");

主にフレームワーク内での内部使用を目的としています。より包括的なアサーションユーティリティスイートについては、Apache Commons ラングの org.apache.commons.lang3.Validate、Google Guava の Preconditions、または同様のサードパーティライブラリを検討してください。

導入:
1.1.2
作成者:
Keith Donald, Juergen Hoeller, Sam Brannen, Colin Sampaleanu, Rob Harrop
  • コンストラクターのサマリー

    コンストラクター
    コンストラクター
    説明
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    static void
    doesNotContain(StringSE textToSearch, StringSE substring, StringSE message)
    指定されたテキストに指定された部分文字列が含まれていないことを表明します。
    static void
    doesNotContain(StringSE textToSearch, StringSE substring, SupplierSE<StringSE> messageSupplier)
    指定されたテキストに指定された部分文字列が含まれていないことを表明します。
    static void
    hasLength(StringSE text, StringSE message)
    指定された文字列が空でないことを表明します。つまり、null であってはならず、空の文字列であってはなりません。
    static void
    hasLength(StringSE text, SupplierSE<StringSE> messageSupplier)
    指定された文字列が空でないことを表明します。つまり、null であってはならず、空の文字列であってはなりません。
    static void
    hasText(StringSE text, StringSE message)
    指定された文字列に有効なテキストコンテンツが含まれていることをアサートします。つまり、null であってはならず、空白文字以外の文字が少なくとも 1 つ含まれている必要があります。
    static void
    hasText(StringSE text, SupplierSE<StringSE> messageSupplier)
    指定された文字列に有効なテキストコンテンツが含まれていることをアサートします。つまり、null であってはならず、空白文字以外の文字が少なくとも 1 つ含まれている必要があります。
    static void
    isAssignable(ClassSE<?> superType, ClassSE<?> subType)
    superType.isAssignableFrom(subType) が true であることを表明します。
    static void
    isAssignable(ClassSE<?> superType, ClassSE<?> subType, StringSE message)
    superType.isAssignableFrom(subType) が true であることを表明します。
    static void
    isAssignable(ClassSE<?> superType, ClassSE<?> subType, SupplierSE<StringSE> messageSupplier)
    superType.isAssignableFrom(subType) が true であることを表明します。
    static void
    提供されたオブジェクトが提供されたクラスのインスタンスであることを表明します。
    static void
    isInstanceOf(ClassSE<?> type, ObjectSE obj, StringSE message)
    提供されたオブジェクトが提供されたクラスのインスタンスであることを表明します。
    static void
    isInstanceOf(ClassSE<?> type, ObjectSE obj, SupplierSE<StringSE> messageSupplier)
    提供されたオブジェクトが提供されたクラスのインスタンスであることを表明します。
    static void
    isNull(ObjectSE object, StringSE message)
    オブジェクトが null であることを表明します。
    static void
    isNull(ObjectSE object, SupplierSE<StringSE> messageSupplier)
    オブジェクトが null であることを表明します。
    static void
    isTrue(boolean expression, StringSE message)
    ブール式をアサートし、式が false と評価された場合は IllegalArgumentException をスローします。
    static void
    isTrue(boolean expression, SupplierSE<StringSE> messageSupplier)
    ブール式をアサートし、式が false と評価された場合は IllegalArgumentException をスローします。
    static void
    noNullElements(ObjectSE[] array, StringSE message)
    配列に null 要素が含まれていないことをアサートします。
    static void
    noNullElements(ObjectSE[] array, SupplierSE<StringSE> messageSupplier)
    配列に null 要素が含まれていないことをアサートします。
    static void
    noNullElements(CollectionSE<?> collection, StringSE message)
    コレクションに null 要素が含まれていないことをアサートします。
    static void
    noNullElements(CollectionSE<?> collection, SupplierSE<StringSE> messageSupplier)
    コレクションに null 要素が含まれていないことをアサートします。
    static void
    notEmpty(ObjectSE[] array, StringSE message)
    配列に要素が含まれていることをアサートします。つまり、null であってはならず、少なくとも 1 つの要素が含まれている必要があります。
    static void
    notEmpty(ObjectSE[] array, SupplierSE<StringSE> messageSupplier)
    配列に要素が含まれていることをアサートします。つまり、null であってはならず、少なくとも 1 つの要素が含まれている必要があります。
    static void
    notEmpty(CollectionSE<?> collection, StringSE message)
    コレクションに要素が含まれていることを表明します。つまり、null であってはならず、少なくとも 1 つのエレメントを含んでいる必要があります。
    static void
    notEmpty(CollectionSE<?> collection, SupplierSE<StringSE> messageSupplier)
    コレクションに要素が含まれていることを表明します。つまり、null であってはならず、少なくとも 1 つのエレメントを含んでいる必要があります。
    static void
    notEmpty(MapSE<?,?> map, StringSE message)
    マップにエントリが含まれていることをアサートします。つまり、null であってはならず、少なくとも 1 つのエントリが含まれている必要があります。
    static void
    notEmpty(MapSE<?,?> map, SupplierSE<StringSE> messageSupplier)
    マップにエントリが含まれていることをアサートします。つまり、null であってはならず、少なくとも 1 つのエントリが含まれている必要があります。
    static void
    notNull(ObjectSE object, StringSE message)
    オブジェクトが null ではないことを表明します。
    static void
    notNull(ObjectSE object, SupplierSE<StringSE> messageSupplier)
    オブジェクトが null ではないことを表明します。
    static void
    state(boolean expression, StringSE message)
    ブール式をアサートし、式が false と評価された場合は IllegalStateException をスローします。
    static void
    state(boolean expression, SupplierSE<StringSE> messageSupplier)
    ブール式をアサートし、式が false と評価された場合は IllegalStateException をスローします。

    クラス java.lang.ObjectSE から継承されたメソッド

    clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
  • コンストラクターの詳細

    • Assert

      public Assert()
  • メソッドの詳細

    • state

      public static void state(boolean expression, StringSE message)
      ブール式をアサートし、式が false と評価された場合は IllegalStateException をスローします。

      アサーションの失敗時に IllegalArgumentException をスローする場合は、isTrue(boolean, java.lang.String) を呼び出します。

      Assert.state(id == null, "The id property must not already be initialized");
      パラメーター:
      expression - ブール式
      message - アサーションが失敗した場合に使用する例外メッセージ
      例外:
      IllegalStateExceptionSE - expression が false の場合
    • state

      public static void state(boolean expression, SupplierSE<StringSE> messageSupplier)
      ブール式をアサートし、式が false と評価された場合は IllegalStateException をスローします。

      アサーションの失敗時に IllegalArgumentException をスローする場合は、isTrue(boolean, java.lang.String) を呼び出します。

       Assert.state(entity.getId() == null,
           () -> "ID for entity " + entity.getName() + " must not already be initialized");
       
      パラメーター:
      expression - ブール式
      messageSupplier - アサーションが失敗した場合に使用する例外メッセージのサプライヤー
      例外:
      IllegalStateExceptionSE - expression が false の場合
      導入:
      5.0
    • isTrue

      public static void isTrue(boolean expression, StringSE message)
      ブール式をアサートし、式が false と評価された場合は IllegalArgumentException をスローします。
      Assert.isTrue(i > 0, "The value must be greater than zero");
      パラメーター:
      expression - ブール式
      message - アサーションが失敗した場合に使用する例外メッセージ
      例外:
      IllegalArgumentExceptionSE - expression が false の場合
    • isTrue

      public static void isTrue(boolean expression, SupplierSE<StringSE> messageSupplier)
      ブール式をアサートし、式が false と評価された場合は IllegalArgumentException をスローします。
       Assert.isTrue(i > 0, () -> "The value '" + i + "' must be greater than zero");
       
      パラメーター:
      expression - ブール式
      messageSupplier - アサーションが失敗した場合に使用する例外メッセージのサプライヤー
      例外:
      IllegalArgumentExceptionSE - expression が false の場合
      導入:
      5.0
    • isNull

      public static void isNull(@Nullable ObjectSE object, StringSE message)
      オブジェクトが null であることを表明します。
      Assert.isNull(value, "The value must be null");
      パラメーター:
      object - チェックするオブジェクト
      message - アサーションが失敗した場合に使用する例外メッセージ
      例外:
      IllegalArgumentExceptionSE - オブジェクトが null でない場合
    • isNull

      public static void isNull(@Nullable ObjectSE object, SupplierSE<StringSE> messageSupplier)
      オブジェクトが null であることを表明します。
       Assert.isNull(value, () -> "The value '" + value + "' must be null");
       
      パラメーター:
      object - チェックするオブジェクト
      messageSupplier - アサーションが失敗した場合に使用する例外メッセージのサプライヤー
      例外:
      IllegalArgumentExceptionSE - オブジェクトが null でない場合
      導入:
      5.0
    • notNull

      public static void notNull(@Nullable ObjectSE object, StringSE message)
      オブジェクトが null ではないことを表明します。
      Assert.notNull(clazz, "The class must not be null");
      パラメーター:
      object - チェックするオブジェクト
      message - アサーションが失敗した場合に使用する例外メッセージ
      例外:
      IllegalArgumentExceptionSE - オブジェクトが null の場合
    • notNull

      public static void notNull(@Nullable ObjectSE object, SupplierSE<StringSE> messageSupplier)
      オブジェクトが null ではないことを表明します。
       Assert.notNull(entity.getId(),
           () -> "ID for entity " + entity.getName() + " must not be null");
       
      パラメーター:
      object - チェックするオブジェクト
      messageSupplier - アサーションが失敗した場合に使用する例外メッセージのサプライヤー
      例外:
      IllegalArgumentExceptionSE - オブジェクトが null の場合
      導入:
      5.0
    • hasLength

      public static void hasLength(@Nullable StringSE text, StringSE message)
      指定された文字列が空でないことを表明します。つまり、null であってはならず、空の文字列であってはなりません。
      Assert.hasLength(name, "Name must not be empty");
      パラメーター:
      text - チェックする文字列
      message - アサーションが失敗した場合に使用する例外メッセージ
      例外:
      IllegalArgumentExceptionSE - テキストが空の場合
      関連事項:
    • hasLength

      public static void hasLength(@Nullable StringSE text, SupplierSE<StringSE> messageSupplier)
      指定された文字列が空でないことを表明します。つまり、null であってはならず、空の文字列であってはなりません。
       Assert.hasLength(account.getName(),
           () -> "Name for account '" + account.getId() + "' must not be empty");
       
      パラメーター:
      text - チェックする文字列
      messageSupplier - アサーションが失敗した場合に使用する例外メッセージのサプライヤー
      例外:
      IllegalArgumentExceptionSE - テキストが空の場合
      導入:
      5.0
      関連事項:
    • hasText

      public static void hasText(@Nullable StringSE text, StringSE message)
      指定された文字列に有効なテキストコンテンツが含まれていることをアサートします。つまり、null であってはならず、空白文字以外の文字が少なくとも 1 つ含まれている必要があります。
      Assert.hasText(name, "'name' must not be empty");
      パラメーター:
      text - チェックする文字列
      message - アサーションが失敗した場合に使用する例外メッセージ
      例外:
      IllegalArgumentExceptionSE - テキストに有効なテキストコンテンツが含まれていない場合
      関連事項:
    • hasText

      public static void hasText(@Nullable StringSE text, SupplierSE<StringSE> messageSupplier)
      指定された文字列に有効なテキストコンテンツが含まれていることをアサートします。つまり、null であってはならず、空白文字以外の文字が少なくとも 1 つ含まれている必要があります。
       Assert.hasText(account.getName(),
           () -> "Name for account '" + account.getId() + "' must not be empty");
       
      パラメーター:
      text - チェックする文字列
      messageSupplier - アサーションが失敗した場合に使用する例外メッセージのサプライヤー
      例外:
      IllegalArgumentExceptionSE - テキストに有効なテキストコンテンツが含まれていない場合
      導入:
      5.0
      関連事項:
    • doesNotContain

      public static void doesNotContain(@Nullable StringSE textToSearch, StringSE substring, StringSE message)
      指定されたテキストに指定された部分文字列が含まれていないことを表明します。
      Assert.doesNotContain(name, "rod", "Name must not contain 'rod'");
      パラメーター:
      textToSearch - 検索するテキスト
      substring - テキスト内で検索する部分文字列
      message - アサーションが失敗した場合に使用する例外メッセージ
      例外:
      IllegalArgumentExceptionSE - テキストに部分文字列が含まれている場合
    • doesNotContain

      public static void doesNotContain(@Nullable StringSE textToSearch, StringSE substring, SupplierSE<StringSE> messageSupplier)
      指定されたテキストに指定された部分文字列が含まれていないことを表明します。
       Assert.doesNotContain(name, forbidden, () -> "Name must not contain '" + forbidden + "'");
       
      パラメーター:
      textToSearch - 検索するテキスト
      substring - テキスト内で検索する部分文字列
      messageSupplier - アサーションが失敗した場合に使用する例外メッセージのサプライヤー
      例外:
      IllegalArgumentExceptionSE - テキストに部分文字列が含まれている場合
      導入:
      5.0
    • notEmpty

      public static void notEmpty(@Nullable ObjectSE[] array, StringSE message)
      配列に要素が含まれていることをアサートします。つまり、null であってはならず、少なくとも 1 つの要素が含まれている必要があります。
      Assert.notEmpty(array, "The array must contain elements");
      パラメーター:
      array - チェックする配列
      message - アサーションが失敗した場合に使用する例外メッセージ
      例外:
      IllegalArgumentExceptionSE - オブジェクト配列が null であるか、要素が含まれていない場合
    • notEmpty

      public static void notEmpty(@Nullable ObjectSE[] array, SupplierSE<StringSE> messageSupplier)
      配列に要素が含まれていることをアサートします。つまり、null であってはならず、少なくとも 1 つの要素が含まれている必要があります。
       Assert.notEmpty(array, () -> "The " + arrayType + " array must contain elements");
       
      パラメーター:
      array - チェックする配列
      messageSupplier - アサーションが失敗した場合に使用する例外メッセージのサプライヤー
      例外:
      IllegalArgumentExceptionSE - オブジェクト配列が null であるか、要素が含まれていない場合
      導入:
      5.0
    • noNullElements

      public static void noNullElements(@Nullable ObjectSE[] array, StringSE message)
      配列に null 要素が含まれていないことをアサートします。

      メモ: 配列が空の場合は文句を言わない!

      Assert.noNullElements(array, "The array must contain non-null elements");
      パラメーター:
      array - チェックする配列
      message - アサーションが失敗した場合に使用する例外メッセージ
      例外:
      IllegalArgumentExceptionSE - オブジェクト配列に null 要素が含まれる場合
    • noNullElements

      public static void noNullElements(@Nullable ObjectSE[] array, SupplierSE<StringSE> messageSupplier)
      配列に null 要素が含まれていないことをアサートします。

      メモ: 配列が空の場合は文句を言わない!

       Assert.noNullElements(array, () -> "The " + arrayType + " array must contain non-null elements");
       
      パラメーター:
      array - チェックする配列
      messageSupplier - アサーションが失敗した場合に使用する例外メッセージのサプライヤー
      例外:
      IllegalArgumentExceptionSE - オブジェクト配列に null 要素が含まれる場合
      導入:
      5.0
    • notEmpty

      public static void notEmpty(@Nullable CollectionSE<?> collection, StringSE message)
      コレクションに要素が含まれていることを表明します。つまり、null であってはならず、少なくとも 1 つのエレメントを含んでいる必要があります。
      Assert.notEmpty(collection, "Collection must contain elements");
      パラメーター:
      collection - チェックするコレクション
      message - アサーションが失敗した場合に使用する例外メッセージ
      例外:
      IllegalArgumentExceptionSE - コレクションが null であるか、要素が含まれていない場合
    • notEmpty

      public static void notEmpty(@Nullable CollectionSE<?> collection, SupplierSE<StringSE> messageSupplier)
      コレクションに要素が含まれていることを表明します。つまり、null であってはならず、少なくとも 1 つのエレメントを含んでいる必要があります。
       Assert.notEmpty(collection, () -> "The " + collectionType + " collection must contain elements");
       
      パラメーター:
      collection - チェックするコレクション
      messageSupplier - アサーションが失敗した場合に使用する例外メッセージのサプライヤー
      例外:
      IllegalArgumentExceptionSE - コレクションが null であるか、要素が含まれていない場合
      導入:
      5.0
    • noNullElements

      public static void noNullElements(@Nullable CollectionSE<?> collection, StringSE message)
      コレクションに null 要素が含まれていないことをアサートします。

      メモ: コレクションが空の場合でも文句は言いません!

      Assert.noNullElements(collection, "Collection must contain non-null elements");
      パラメーター:
      collection - チェックするコレクション
      message - アサーションが失敗した場合に使用する例外メッセージ
      例外:
      IllegalArgumentExceptionSE - コレクションに null 要素が含まれている場合
      導入:
      5.2
    • noNullElements

      public static void noNullElements(@Nullable CollectionSE<?> collection, SupplierSE<StringSE> messageSupplier)
      コレクションに null 要素が含まれていないことをアサートします。

      メモ: コレクションが空の場合でも文句は言いません!

       Assert.noNullElements(collection, () -> "Collection " + collectionName + " must contain non-null elements");
       
      パラメーター:
      collection - チェックするコレクション
      messageSupplier - アサーションが失敗した場合に使用する例外メッセージのサプライヤー
      例外:
      IllegalArgumentExceptionSE - コレクションに null 要素が含まれている場合
      導入:
      5.2
    • notEmpty

      public static void notEmpty(@Nullable MapSE<?,?> map, StringSE message)
      マップにエントリが含まれていることをアサートします。つまり、null であってはならず、少なくとも 1 つのエントリが含まれている必要があります。
      Assert.notEmpty(map, "Map must contain entries");
      パラメーター:
      map - チェックするマップ
      message - アサーションが失敗した場合に使用する例外メッセージ
      例外:
      IllegalArgumentExceptionSE - マップが null であるか、エントリが含まれていない場合
    • notEmpty

      public static void notEmpty(@Nullable MapSE<?,?> map, SupplierSE<StringSE> messageSupplier)
      マップにエントリが含まれていることをアサートします。つまり、null であってはならず、少なくとも 1 つのエントリが含まれている必要があります。
       Assert.notEmpty(map, () -> "The " + mapType + " map must contain entries");
       
      パラメーター:
      map - チェックするマップ
      messageSupplier - アサーションが失敗した場合に使用する例外メッセージのサプライヤー
      例外:
      IllegalArgumentExceptionSE - マップが null であるか、エントリが含まれていない場合
      導入:
      5.0
    • isInstanceOf

      public static void isInstanceOf(ClassSE<?> type, @Nullable ObjectSE obj, StringSE message)
      提供されたオブジェクトが提供されたクラスのインスタンスであることを表明します。
      Assert.instanceOf(Foo.class, foo, "Foo expected");
      パラメーター:
      type - チェックする型
      obj - チェックするオブジェクト
      message - 追加のコンテキストを提供するために付加されるメッセージ。空の場合、または ":" または ";" で終わる場合または "," または "." の場合、完全な例外メッセージが追加されます。スペースで終わる場合は、問題のオブジェクトの型の名前が追加されます。それ以外の場合は、スペースを含む ":" と問題のオブジェクトの型の名前が追加されます。
      例外:
      IllegalArgumentExceptionSE - オブジェクトが型のインスタンスでない場合
    • isInstanceOf

      public static void isInstanceOf(ClassSE<?> type, @Nullable ObjectSE obj, SupplierSE<StringSE> messageSupplier)
      提供されたオブジェクトが提供されたクラスのインスタンスであることを表明します。
       Assert.instanceOf(Foo.class, foo, () -> "Processing " + Foo.class.getSimpleName() + ":");
       
      パラメーター:
      type - チェックする型
      obj - チェックするオブジェクト
      messageSupplier - アサーションが失敗した場合に使用する例外メッセージのサプライヤー。詳細については、isInstanceOf(Class, Object, String) を参照してください。
      例外:
      IllegalArgumentExceptionSE - オブジェクトが型のインスタンスでない場合
      導入:
      5.0
    • isInstanceOf

      public static void isInstanceOf(ClassSE<?> type, @Nullable ObjectSE obj)
      提供されたオブジェクトが提供されたクラスのインスタンスであることを表明します。
      Assert.instanceOf(Foo.class, foo);
      パラメーター:
      type - チェックする型
      obj - チェックするオブジェクト
      例外:
      IllegalArgumentExceptionSE - オブジェクトが型のインスタンスでない場合
    • isAssignable

      public static void isAssignable(ClassSE<?> superType, @Nullable ClassSE<?> subType, StringSE message)
      superType.isAssignableFrom(subType) が true であることを表明します。
      Assert.isAssignable(Number.class, myClass, "Number expected");
      パラメーター:
      superType - チェックするスーパー型
      subType - チェックするサブ型
      message - さらなるコンテキストを提供するために付加されるメッセージ。空であるか、":" または ";" で終わる場合または "," または "." の場合、完全な例外メッセージが追加されます。スペースで終わる場合は、問題のあるサブ型の名前が追加されます。それ以外の場合は、スペースと問題のあるサブ型の名前を含む ":" が追加されます。
      例外:
      IllegalArgumentExceptionSE - クラスが割り当て可能でない場合
    • isAssignable

      public static void isAssignable(ClassSE<?> superType, @Nullable ClassSE<?> subType, SupplierSE<StringSE> messageSupplier)
      superType.isAssignableFrom(subType) が true であることを表明します。
       Assert.isAssignable(Number.class, myClass, () -> "Processing " + myAttributeName + ":");
       
      パラメーター:
      superType - チェックするスーパー型
      subType - チェックするサブ型
      messageSupplier - アサーションが失敗した場合に使用する例外メッセージのサプライヤー。詳細については、isAssignable(Class, Class, String) を参照してください。
      例外:
      IllegalArgumentExceptionSE - クラスが割り当て可能でない場合
      導入:
      5.0
    • isAssignable

      public static void isAssignable(ClassSE<?> superType, ClassSE<?> subType)
      superType.isAssignableFrom(subType) が true であることを表明します。
      Assert.isAssignable(Number.class, myClass);
      パラメーター:
      superType - チェックするスーパー型
      subType - チェックするサブ型
      例外:
      IllegalArgumentExceptionSE - クラスが割り当て可能でない場合