クラス Assert
実行時にプログラマーのエラーを早期かつ明確に識別できます。
例: 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, Sebastien Deleuze
コンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明static voiddoesNotContain(StringSE textToSearch, StringSE substring, StringSE message) 指定されたテキストに指定された部分文字列が含まれていないことを表明します。static voiddoesNotContain(StringSE textToSearch, StringSE substring, SupplierSE<StringSE> messageSupplier) 指定されたテキストに指定された部分文字列が含まれていないことを表明します。static void指定された文字列が空でないことを表明します。つまり、nullであってはならず、空の文字列であってはなりません。static voidhasLength(StringSE text, SupplierSE<StringSE> messageSupplier) 指定された文字列が空でないことを表明します。つまり、nullであってはならず、空の文字列であってはなりません。static void指定された文字列に有効なテキストコンテンツが含まれていることをアサートします。つまり、nullであってはならず、空白文字以外の文字が少なくとも 1 つ含まれている必要があります。static voidhasText(StringSE text, SupplierSE<StringSE> messageSupplier) 指定された文字列に有効なテキストコンテンツが含まれていることをアサートします。つまり、nullであってはならず、空白文字以外の文字が少なくとも 1 つ含まれている必要があります。static voidisAssignable(ClassSE<?> superType, ClassSE<?> subType) superType.isAssignableFrom(subType)がtrueであることを表明します。static voidisAssignable(ClassSE<?> superType, ClassSE<?> subType, StringSE message) superType.isAssignableFrom(subType)がtrueであることを表明します。static voidisAssignable(ClassSE<?> superType, ClassSE<?> subType, SupplierSE<StringSE> messageSupplier) superType.isAssignableFrom(subType)がtrueであることを表明します。static voidisInstanceOf(ClassSE<?> type, ObjectSE obj) 提供されたオブジェクトが提供されたクラスのインスタンスであることを表明します。static voidisInstanceOf(ClassSE<?> type, ObjectSE obj, StringSE message) 提供されたオブジェクトが提供されたクラスのインスタンスであることを表明します。static voidisInstanceOf(ClassSE<?> type, ObjectSE obj, SupplierSE<StringSE> messageSupplier) 提供されたオブジェクトが提供されたクラスのインスタンスであることを表明します。static voidオブジェクトがnullであることを表明します。static voidisNull(ObjectSE object, SupplierSE<StringSE> messageSupplier) オブジェクトがnullであることを表明します。static voidブール式をアサートし、式がfalseと評価された場合はIllegalArgumentExceptionをスローします。static voidisTrue(boolean expression, SupplierSE<StringSE> messageSupplier) ブール式をアサートし、式がfalseと評価された場合はIllegalArgumentExceptionをスローします。static voidnoNullElements(ObjectSE[] array, StringSE message) 配列にnull要素が含まれていないことをアサートします。static voidnoNullElements(ObjectSE[] array, SupplierSE<StringSE> messageSupplier) 配列にnull要素が含まれていないことをアサートします。static voidnoNullElements(CollectionSE<?> collection, StringSE message) コレクションにnull要素が含まれていないことをアサートします。static voidnoNullElements(CollectionSE<?> collection, SupplierSE<StringSE> messageSupplier) コレクションにnull要素が含まれていないことをアサートします。static void配列に要素が含まれていることをアサートします。つまり、nullであってはならず、少なくとも 1 つの要素が含まれている必要があります。static voidnotEmpty(ObjectSE[] array, SupplierSE<StringSE> messageSupplier) 配列に要素が含まれていることをアサートします。つまり、nullであってはならず、少なくとも 1 つの要素が含まれている必要があります。static voidnotEmpty(CollectionSE<?> collection, StringSE message) コレクションに要素が含まれていることを表明します。つまり、nullであってはならず、少なくとも 1 つのエレメントを含んでいる必要があります。static voidnotEmpty(CollectionSE<?> collection, SupplierSE<StringSE> messageSupplier) コレクションに要素が含まれていることを表明します。つまり、nullであってはならず、少なくとも 1 つのエレメントを含んでいる必要があります。static voidマップにエントリが含まれていることをアサートします。つまり、nullであってはならず、少なくとも 1 つのエントリが含まれている必要があります。static voidnotEmpty(MapSE<?, ?> map, SupplierSE<StringSE> messageSupplier) マップにエントリが含まれていることをアサートします。つまり、nullであってはならず、少なくとも 1 つのエントリが含まれている必要があります。static voidオブジェクトがnullではないことを表明します。static voidnotNull(ObjectSE object, SupplierSE<StringSE> messageSupplier) オブジェクトがnullではないことを表明します。static voidブール式をアサートし、式がfalseと評価された場合はIllegalStateExceptionをスローします。static voidstate(boolean expression, SupplierSE<StringSE> messageSupplier) ブール式をアサートし、式がfalseと評価された場合はIllegalStateExceptionをスローします。
コンストラクターの詳細
Assert
public Assert()
メソッドの詳細
state
ブール式をアサートし、式が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
@Contract("false, _ -> fail") 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
ブール式をアサートし、式がfalseと評価された場合はIllegalArgumentExceptionをスローします。Assert.isTrue(i > 0, "The value must be greater than zero");
- パラメーター:
expression- ブール式message- アサーションが失敗した場合に使用する例外メッセージ- 例外:
IllegalArgumentExceptionSE-expressionがfalseの場合
isTrue
@Contract("false, _ -> fail") 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
@Contract("!null, _ -> fail") public static void isNull(@Nullable ObjectSE object, StringSE message) オブジェクトがnullであることを表明します。Assert.isNull(value, "The value must be null");
- パラメーター:
object- チェックするオブジェクトmessage- アサーションが失敗した場合に使用する例外メッセージ- 例外:
IllegalArgumentExceptionSE- オブジェクトがnullでない場合
isNull
@Contract("!null, _ -> fail") 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
@Contract("null, _ -> fail") public static void notNull(@Nullable ObjectSE object, StringSE message) オブジェクトがnullではないことを表明します。Assert.notNull(clazz, "The class must not be null");
- パラメーター:
object- チェックするオブジェクトmessage- アサーションが失敗した場合に使用する例外メッセージ- 例外:
IllegalArgumentExceptionSE- オブジェクトがnullの場合
notNull
@Contract("null, _ -> fail") 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
@Contract("null, _ -> fail") public static void hasLength(@Nullable StringSE text, StringSE message) 指定された文字列が空でないことを表明します。つまり、nullであってはならず、空の文字列であってはなりません。Assert.hasLength(name, "Name must not be empty");
- パラメーター:
text- チェックする文字列message- アサーションが失敗した場合に使用する例外メッセージ- 例外:
IllegalArgumentExceptionSE- テキストが空の場合- 関連事項:
hasLength
@Contract("null, _ -> fail") 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
指定された文字列に有効なテキストコンテンツが含まれていることをアサートします。つまり、nullであってはならず、空白文字以外の文字が少なくとも 1 つ含まれている必要があります。Assert.hasText(name, "'name' must not be empty");
- パラメーター:
text- チェックする文字列message- アサーションが失敗した場合に使用する例外メッセージ- 例外:
IllegalArgumentExceptionSE- テキストに有効なテキストコンテンツが含まれていない場合- 関連事項:
hasText
@Contract("null, _ -> fail") 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
@Contract("null, _ -> fail") public static void notEmpty(@Nullable ObjectSE[] array, StringSE message) 配列に要素が含まれていることをアサートします。つまり、nullであってはならず、少なくとも 1 つの要素が含まれている必要があります。Assert.notEmpty(array, "The array must contain elements");
- パラメーター:
array- チェックする配列message- アサーションが失敗した場合に使用する例外メッセージ- 例外:
IllegalArgumentExceptionSE- オブジェクト配列がnullであるか、要素が含まれていない場合
notEmpty
@Contract("null, _ -> fail") 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
配列にnull要素が含まれていないことをアサートします。メモ: 配列が空の場合は文句を言わない!
Assert.noNullElements(array, "The array must contain non-null elements");
- パラメーター:
array- チェックする配列message- アサーションが失敗した場合に使用する例外メッセージ- 例外:
IllegalArgumentExceptionSE- オブジェクト配列にnull要素が含まれる場合
noNullElements
配列にnull要素が含まれていないことをアサートします。メモ: 配列が空の場合は文句を言わない!
Assert.noNullElements(array, () -> "The " + arrayType + " array must contain non-null elements");
- パラメーター:
array- チェックする配列messageSupplier- アサーションが失敗した場合に使用する例外メッセージのサプライヤー- 例外:
IllegalArgumentExceptionSE- オブジェクト配列にnull要素が含まれる場合- 導入:
- 5.0
notEmpty
@Contract("null, _ -> fail") public static void notEmpty(@Nullable CollectionSE<?> collection, StringSE message) コレクションに要素が含まれていることを表明します。つまり、nullであってはならず、少なくとも 1 つのエレメントを含んでいる必要があります。Assert.notEmpty(collection, "Collection must contain elements");
- パラメーター:
collection- チェックするコレクションmessage- アサーションが失敗した場合に使用する例外メッセージ- 例外:
IllegalArgumentExceptionSE- コレクションがnullであるか、要素が含まれていない場合
notEmpty
@Contract("null, _ -> fail") 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
コレクションに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
@Contract("null, _ -> fail") public static void notEmpty(@Nullable MapSE<?, ?> map, StringSE message) マップにエントリが含まれていることをアサートします。つまり、nullであってはならず、少なくとも 1 つのエントリが含まれている必要があります。Assert.notEmpty(map, "Map must contain entries");
- パラメーター:
map- チェックするマップmessage- アサーションが失敗した場合に使用する例外メッセージ- 例外:
IllegalArgumentExceptionSE- マップがnullであるか、エントリが含まれていない場合
notEmpty
@Contract("null, _ -> fail") 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
@Contract("_, null, _ -> fail") public static void isInstanceOf(ClassSE<?> type, @Nullable ObjectSE obj, StringSE message) 提供されたオブジェクトが提供されたクラスのインスタンスであることを表明します。Assert.instanceOf(Foo.class, foo, "Foo expected");
- パラメーター:
type- チェックする型obj- チェックするオブジェクトmessage- 追加のコンテキストを提供するために付加されるメッセージ。空の場合、または ":" または ";" で終わる場合または "," または "." の場合、完全な例外メッセージが追加されます。スペースで終わる場合は、問題のオブジェクトの型の名前が追加されます。それ以外の場合は、スペースを含む ":" と問題のオブジェクトの型の名前が追加されます。- 例外:
IllegalArgumentExceptionSE- オブジェクトが型のインスタンスでない場合
isInstanceOf
@Contract("_, null, _ -> fail") 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
@Contract("_, null -> fail") public static void isInstanceOf(ClassSE<?> type, @Nullable ObjectSE obj) 提供されたオブジェクトが提供されたクラスのインスタンスであることを表明します。Assert.instanceOf(Foo.class, foo);
- パラメーター:
type- チェックする型obj- チェックするオブジェクト- 例外:
IllegalArgumentExceptionSE- オブジェクトが型のインスタンスでない場合
isAssignable
@Contract("_, null, _ -> fail") 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
@Contract("_, null, _ -> fail") 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
@Contract("_, null -> fail") public static void isAssignable(ClassSE<?> superType, @Nullable ClassSE<?> subType) superType.isAssignableFrom(subType)がtrueであることを表明します。Assert.isAssignable(Number.class, myClass);
- パラメーター:
superType- チェックするスーパー型subType- チェックするサブ型- 例外:
IllegalArgumentExceptionSE- クラスが割り当て可能でない場合