クラス Assert
実行時にプログラマーのエラーを早期かつ明確に識別できます。
例: public メソッドの規約で null
引数が許可されていない場合、Assert
を使用してその規約を検証できます。これを行うと、契約違反が発生したときに明確に示され、クラスの不変条件が保護されます。
通常は、構成プロパティではなくメソッドの引数を検証し、構成エラーではなくプログラマエラーであるケースをチェックするために使用されます。構成初期化コードとは対照的に、このようなメソッドではデフォルトにフォールバックしても意味がありません。
このクラスは、JUnit のアサーションライブラリに似ています。引数値が無効と見なされると、IllegalArgumentException
SE がスローされます(通常)。例:
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 void
doesNotContain
(StringSE textToSearch, StringSE substring, StringSE message) 指定されたテキストに指定された部分文字列が含まれていないことを表明します。static void
doesNotContain
(StringSE textToSearch, StringSE substring, SupplierSE<StringSE> messageSupplier) 指定されたテキストに指定された部分文字列が含まれていないことを表明します。static void
指定された文字列が空でないことを表明します。つまり、null
であってはならず、空の文字列であってはなりません。static void
hasLength
(StringSE text, SupplierSE<StringSE> messageSupplier) 指定された文字列が空でないことを表明します。つまり、null
であってはならず、空の文字列であってはなりません。static void
指定された文字列に有効なテキストコンテンツが含まれていることをアサートします。つまり、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
isInstanceOf
(ClassSE<?> type, ObjectSE obj) 提供されたオブジェクトが提供されたクラスのインスタンスであることを表明します。static void
isInstanceOf
(ClassSE<?> type, ObjectSE obj, StringSE message) 提供されたオブジェクトが提供されたクラスのインスタンスであることを表明します。static void
isInstanceOf
(ClassSE<?> type, ObjectSE obj, SupplierSE<StringSE> messageSupplier) 提供されたオブジェクトが提供されたクラスのインスタンスであることを表明します。static void
オブジェクトがnull
であることを表明します。static void
isNull
(ObjectSE object, SupplierSE<StringSE> messageSupplier) オブジェクトがnull
であることを表明します。static void
ブール式をアサートし、式が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
配列に要素が含まれていることをアサートします。つまり、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
マップにエントリが含まれていることをアサートします。つまり、null
であってはならず、少なくとも 1 つのエントリが含まれている必要があります。static void
notEmpty
(MapSE<?, ?> map, SupplierSE<StringSE> messageSupplier) マップにエントリが含まれていることをアサートします。つまり、null
であってはならず、少なくとも 1 つのエントリが含まれている必要があります。static void
オブジェクトがnull
ではないことを表明します。static void
notNull
(ObjectSE object, SupplierSE<StringSE> messageSupplier) オブジェクトがnull
ではないことを表明します。static void
ブール式をアサートし、式がfalse
と評価された場合はIllegalStateException
をスローします。static void
state
(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
- クラスが割り当て可能でない場合