public abstract class Assert extends ObjectSE
実行時にプログラマーのエラーを早期かつ明確に識別できます。
例: 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、または同様のサードパーティライブラリを検討してください。
コンストラクターと説明 |
---|
Assert() |
修飾子と型 | メソッドと説明 |
---|---|
static void | doesNotContain(StringSE textToSearch, StringSE substring) 使用すべきではありません。 4.3.7 現在、 doesNotContain(String, String, String) を推奨 |
static void | doesNotContain(StringSE textToSearch, StringSE substring, StringSE message) 指定されたテキストに指定された部分文字列が含まれていないことを表明します。 |
static void | doesNotContain(StringSE textToSearch, StringSE substring, SupplierSE<StringSE> messageSupplier) 指定されたテキストに指定された部分文字列が含まれていないことを表明します。 |
static void | hasLength(StringSE text) 使用すべきではありません。 4.3.7 現在、 hasLength(String, String) を推奨 |
static void | hasLength(StringSE text, StringSE message) 指定された文字列が空でないことを表明します。つまり、 null であってはならず、空の文字列であってはなりません。 |
static void | hasLength(StringSE text, SupplierSE<StringSE> messageSupplier) 指定された文字列が空でないことを表明します。つまり、 null であってはならず、空の文字列であってはなりません。 |
static void | hasText(StringSE text) 使用すべきではありません。 4.3.7 現在、 hasText(String, String) を推奨 |
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 | 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 | isNull(ObjectSE object) 使用すべきではありません。 4.3.7 現在、 isNull(Object, String) を推奨 |
static void | isNull(ObjectSE object, StringSE message) オブジェクトが null であることを表明します。 |
static void | isNull(ObjectSE object, SupplierSE<StringSE> messageSupplier) オブジェクトが null であることを表明します。 |
static void | isTrue(boolean expression) 使用すべきではありません。 4.3.7 現在、 isTrue(boolean, String) を推奨 |
static void | isTrue(boolean expression, StringSE message) ブール式をアサートし、式が false と評価された場合は IllegalArgumentException をスローします。 |
static void | isTrue(boolean expression, SupplierSE<StringSE> messageSupplier) ブール式をアサートし、式が false と評価された場合は IllegalArgumentException をスローします。 |
static void | noNullElements(CollectionSE<?> collection, StringSE message) コレクションに null 要素が含まれていないことをアサートします。 |
static void | noNullElements(CollectionSE<?> collection, SupplierSE<StringSE> messageSupplier) コレクションに null 要素が含まれていないことをアサートします。 |
static void | noNullElements(ObjectSE[] array) 使用すべきではありません。 4.3.7 現在、 noNullElements(Object[], String) を推奨 |
static void | noNullElements(ObjectSE[] array, StringSE message) 配列に null 要素が含まれていないことをアサートします。 |
static void | noNullElements(ObjectSE[] array, SupplierSE<StringSE> messageSupplier) 配列に null 要素が含まれていないことをアサートします。 |
static void | notEmpty(CollectionSE<?> collection) 使用すべきではありません。 4.3.7 現在、 notEmpty(Collection, String) を推奨 |
static void | notEmpty(CollectionSE<?> collection, StringSE message) コレクションに要素が含まれていることを表明します。つまり、 null であってはならず、少なくとも 1 つのエレメントを含んでいる必要があります。 |
static void | notEmpty(CollectionSE<?> collection, SupplierSE<StringSE> messageSupplier) コレクションに要素が含まれていることを表明します。つまり、 null であってはならず、少なくとも 1 つのエレメントを含んでいる必要があります。 |
static void | notEmpty(MapSE<?,?> map) 使用すべきではありません。 4.3.7 現在、 notEmpty(Map, String) を推奨 |
static void | notEmpty(MapSE<?,?> map, StringSE message) マップにエントリが含まれていることをアサートします。つまり、 null であってはならず、少なくとも 1 つのエントリが含まれている必要があります。 |
static void | notEmpty(MapSE<?,?> map, SupplierSE<StringSE> messageSupplier) マップにエントリが含まれていることをアサートします。つまり、 null であってはならず、少なくとも 1 つのエントリが含まれている必要があります。 |
static void | notEmpty(ObjectSE[] array) 使用すべきではありません。 4.3.7 現在、 notEmpty(Object[], String) を推奨 |
static void | notEmpty(ObjectSE[] array, StringSE message) 配列に要素が含まれていることをアサートします。つまり、 null であってはならず、少なくとも 1 つの要素が含まれている必要があります。 |
static void | notEmpty(ObjectSE[] array, SupplierSE<StringSE> messageSupplier) 配列に要素が含まれていることをアサートします。つまり、 null であってはならず、少なくとも 1 つの要素が含まれている必要があります。 |
static void | notNull(ObjectSE object) 使用すべきではありません。 4.3.7 現在、 notNull(Object, String) を推奨 |
static void | notNull(ObjectSE object, StringSE message) オブジェクトが null ではないことを表明します。 |
static void | notNull(ObjectSE object, SupplierSE<StringSE> messageSupplier) オブジェクトが null ではないことを表明します。 |
static void | state(boolean expression) 使用すべきではありません。 4.3.7 現在、 state(boolean, String) を推奨 |
static void | state(boolean expression, StringSE message) ブール式をアサートし、式が false と評価された場合は IllegalStateException をスローします。 |
static void | state(boolean expression, SupplierSE<StringSE> messageSupplier) ブール式をアサートし、式が false と評価された場合は IllegalStateException をスローします。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
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
の場合 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
の場合 @DeprecatedSE public static void state(boolean expression)
state(boolean, String)
に置き換えられました。false
と評価された場合は IllegalStateException
をスローします。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
の場合 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
の場合 @DeprecatedSE public static void isTrue(boolean expression)
isTrue(boolean, String)
に置き換えられました。false
と評価された場合は IllegalArgumentException
をスローします。public static void isNull(@Nullable ObjectSE object, StringSE message)
null
であることを表明します。Assert.isNull(value, "The value must be null");
object
- チェックするオブジェクト message
- アサーションが失敗した場合に使用する例外メッセージ IllegalArgumentExceptionSE
- オブジェクトが null
でない場合 public static void isNull(@Nullable ObjectSE object, SupplierSE<StringSE> messageSupplier)
null
であることを表明します。Assert.isNull(value, () -> "The value '" + value + "' must be null");
object
- チェックするオブジェクト messageSupplier
- アサーションが失敗した場合に使用する例外メッセージのサプライヤー IllegalArgumentExceptionSE
- オブジェクトが null
でない場合 @DeprecatedSE public static void isNull(@Nullable ObjectSE object)
isNull(Object, String)
に置き換えられました。null
であることを表明します。public static void notNull(@Nullable ObjectSE object, StringSE message)
null
ではないことを表明します。Assert.notNull(clazz, "The class must not be null");
object
- チェックするオブジェクト message
- アサーションが失敗した場合に使用する例外メッセージ IllegalArgumentExceptionSE
- オブジェクトが null
の場合 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
の場合 @DeprecatedSE public static void notNull(@Nullable ObjectSE object)
notNull(Object, String)
に置き換えられました。null
ではないことを表明します。public static void hasLength(@Nullable StringSE text, StringSE message)
null
であってはならず、空の文字列であってはなりません。Assert.hasLength(name, "Name must not be empty");
text
- チェックする文字列 message
- アサーションが失敗した場合に使用する例外メッセージ IllegalArgumentExceptionSE
- テキストが空の場合 StringUtils.hasLength(java.lang.CharSequence)
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
- テキストが空の場合 StringUtils.hasLength(java.lang.CharSequence)
@DeprecatedSE public static void hasLength(@Nullable StringSE text)
hasLength(String, String)
に置き換えられました。null
であってはならず、空の文字列であってはなりません。public static void hasText(@Nullable StringSE text, StringSE message)
null
であってはならず、空白文字以外の文字が少なくとも 1 つ含まれている必要があります。Assert.hasText(name, "'name' must not be empty");
text
- チェックする文字列 message
- アサーションが失敗した場合に使用する例外メッセージ IllegalArgumentExceptionSE
- テキストに有効なテキストコンテンツが含まれていない場合 StringUtils.hasText(java.lang.CharSequence)
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
- テキストに有効なテキストコンテンツが含まれていない場合 StringUtils.hasText(java.lang.CharSequence)
@DeprecatedSE public static void hasText(@Nullable StringSE text)
hasText(String, String)
に置き換えられました。null
であってはならず、空白文字以外の文字が少なくとも 1 つ含まれている必要があります。public static void doesNotContain(@Nullable StringSE textToSearch, StringSE substring, StringSE message)
Assert.doesNotContain(name, "rod", "Name must not contain 'rod'");
textToSearch
- 検索するテキスト substring
- テキスト内で検索する部分文字列 message
- アサーションが失敗した場合に使用する例外メッセージ IllegalArgumentExceptionSE
- テキストに部分文字列が含まれている場合 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
- テキストに部分文字列が含まれている場合 @DeprecatedSE public static void doesNotContain(@Nullable StringSE textToSearch, StringSE substring)
doesNotContain(String, String, String)
に置き換えられました。public static void notEmpty(@Nullable ObjectSE[] array, StringSE message)
null
であってはならず、少なくとも 1 つの要素が含まれている必要があります。Assert.notEmpty(array, "The array must contain elements");
array
- チェックする配列 message
- アサーションが失敗した場合に使用する例外メッセージ IllegalArgumentExceptionSE
- オブジェクト配列が null
であるか、要素が含まれていない場合 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
であるか、要素が含まれていない場合 @DeprecatedSE public static void notEmpty(@Nullable ObjectSE[] array)
notEmpty(Object[], String)
に置き換えられました。null
であってはならず、少なくとも 1 つの要素が含まれている必要があります。public static void noNullElements(@Nullable ObjectSE[] array, StringSE message)
null
要素が含まれていないことをアサートします。メモ: 配列が空の場合は文句を言わない!
Assert.noNullElements(array, "The array must contain non-null elements");
array
- チェックする配列 message
- アサーションが失敗した場合に使用する例外メッセージ IllegalArgumentExceptionSE
- オブジェクト配列に null
要素が含まれる場合 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
要素が含まれる場合 @DeprecatedSE public static void noNullElements(@Nullable ObjectSE[] array)
noNullElements(Object[], String)
に置き換えられました。null
要素が含まれていないことをアサートします。public static void notEmpty(@Nullable CollectionSE<?> collection, StringSE message)
null
であってはならず、少なくとも 1 つのエレメントを含んでいる必要があります。Assert.notEmpty(collection, "Collection must contain elements");
collection
- チェックするコレクション message
- アサーションが失敗した場合に使用する例外メッセージ IllegalArgumentExceptionSE
- コレクションが null
であるか、要素が含まれていない場合 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
であるか、要素が含まれていない場合 @DeprecatedSE public static void notEmpty(@Nullable CollectionSE<?> collection)
notEmpty(Collection, String)
に置き換えられました。null
であってはならず、少なくとも 1 つのエレメントを含んでいる必要があります。public static void noNullElements(@Nullable CollectionSE<?> collection, StringSE message)
null
要素が含まれていないことをアサートします。メモ: コレクションが空の場合でも文句は言いません!
Assert.noNullElements(collection, "Collection must contain non-null elements");
collection
- チェックするコレクション message
- アサーションが失敗した場合に使用する例外メッセージ IllegalArgumentExceptionSE
- コレクションに null
要素が含まれている場合 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
要素が含まれている場合 public static void notEmpty(@Nullable MapSE<?,?> map, StringSE message)
null
であってはならず、少なくとも 1 つのエントリが含まれている必要があります。Assert.notEmpty(map, "Map must contain entries");
map
- チェックするマップ message
- アサーションが失敗した場合に使用する例外メッセージ IllegalArgumentExceptionSE
- マップが null
であるか、エントリが含まれていない場合 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
であるか、エントリが含まれていない場合 @DeprecatedSE public static void notEmpty(@Nullable MapSE<?,?> map)
notEmpty(Map, String)
に置き換えられました。null
であってはならず、少なくとも 1 つのエントリが含まれている必要があります。public static void isInstanceOf(ClassSE<?> type, @Nullable ObjectSE obj, StringSE message)
Assert.instanceOf(Foo.class, foo, "Foo expected");
type
- チェックする型 obj
- チェックするオブジェクト message
- 追加のコンテキストを提供するために付加されるメッセージ。空の場合、または ":" または ";" で終わる場合または "," または "." の場合、完全な例外メッセージが追加されます。スペースで終わる場合は、問題のオブジェクトの型の名前が追加されます。それ以外の場合は、スペースを含む ":" と問題のオブジェクトの型の名前が追加されます。IllegalArgumentExceptionSE
- オブジェクトが型のインスタンスでない場合 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
- オブジェクトが型のインスタンスでない場合 public static void isInstanceOf(ClassSE<?> type, @Nullable ObjectSE obj)
Assert.instanceOf(Foo.class, foo);
type
- チェックする型 obj
- チェックするオブジェクト IllegalArgumentExceptionSE
- オブジェクトが型のインスタンスでない場合 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
- クラスが割り当て可能でない場合 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
- クラスが割り当て可能でない場合 public static void isAssignable(ClassSE<?> superType, ClassSE<?> subType)
superType.isAssignableFrom(subType)
が true
であることを表明します。Assert.isAssignable(Number.class, myClass);
superType
- チェックするスーパー型 subType
- チェックするサブ型 IllegalArgumentExceptionSE
- クラスが割り当て可能でない場合