Class Assert
Useful for identifying programmer errors early and clearly at runtime.
For example, if the contract of a public method states it does not
 allow null arguments, Assert can be used to validate that
 contract. Doing this clearly indicates a contract violation when it
 occurs and protects the class's invariants.
 
Typically used to validate method arguments rather than configuration properties, to check for cases that are usually programmer errors rather than configuration errors. In contrast to configuration initialization code, there is usually no point in falling back to defaults in such methods.
This class is similar to JUnit's assertion library. If an argument value is
 deemed invalid, an IllegalArgumentException is thrown (typically).
 For example:
 
Assert.notNull(clazz, "The class must not be null"); Assert.isTrue(i > 0, "The value must be greater than zero");
Mainly for internal use within the framework; for a more comprehensive suite
 of assertion utilities consider org.apache.commons.lang3.Validate from
 Apache Commons Lang,
 Google Guava's
 Preconditions,
 or similar third-party libraries.
- Since:
- 1.1.2
- Author:
- Keith Donald, Juergen Hoeller, Sam Brannen, Colin Sampaleanu, Rob Harrop
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionstatic voiddoesNotContain(String textToSearch, String substring) Deprecated.static voiddoesNotContain(String textToSearch, String substring, String message) Assert that the given text does not contain the given substring.static voiddoesNotContain(String textToSearch, String substring, Supplier<String> messageSupplier) Assert that the given text does not contain the given substring.static voidDeprecated.as of 4.3.7, in favor ofhasLength(String, String)static voidAssert that the given String is not empty; that is, it must not benulland not the empty String.static voidAssert that the given String is not empty; that is, it must not benulland not the empty String.static voidDeprecated.as of 4.3.7, in favor ofhasText(String, String)static voidAssert that the given String contains valid text content; that is, it must not benulland must contain at least one non-whitespace character.static voidAssert that the given String contains valid text content; that is, it must not benulland must contain at least one non-whitespace character.static voidisAssignable(Class<?> superType, Class<?> subType) Assert thatsuperType.isAssignableFrom(subType)istrue.static voidisAssignable(Class<?> superType, Class<?> subType, String message) Assert thatsuperType.isAssignableFrom(subType)istrue.static voidisAssignable(Class<?> superType, Class<?> subType, Supplier<String> messageSupplier) Assert thatsuperType.isAssignableFrom(subType)istrue.static voidisInstanceOf(Class<?> type, Object obj) Assert that the provided object is an instance of the provided class.static voidisInstanceOf(Class<?> type, Object obj, String message) Assert that the provided object is an instance of the provided class.static voidisInstanceOf(Class<?> type, Object obj, Supplier<String> messageSupplier) Assert that the provided object is an instance of the provided class.static voidDeprecated.as of 4.3.7, in favor ofisNull(Object, String)static voidAssert that an object isnull.static voidAssert that an object isnull.static voidisTrue(boolean expression) Deprecated.as of 4.3.7, in favor ofisTrue(boolean, String)static voidAssert a boolean expression, throwing anIllegalArgumentExceptionif the expression evaluates tofalse.static voidAssert a boolean expression, throwing anIllegalArgumentExceptionif the expression evaluates tofalse.static voidnoNullElements(Object[] array) Deprecated.as of 4.3.7, in favor ofnoNullElements(Object[], String)static voidnoNullElements(Object[] array, String message) Assert that an array contains nonullelements.static voidnoNullElements(Object[] array, Supplier<String> messageSupplier) Assert that an array contains nonullelements.static voidnoNullElements(Collection<?> collection, String message) Assert that a collection contains nonullelements.static voidnoNullElements(Collection<?> collection, Supplier<String> messageSupplier) Assert that a collection contains nonullelements.static voidDeprecated.as of 4.3.7, in favor ofnotEmpty(Object[], String)static voidAssert that an array contains elements; that is, it must not benulland must contain at least one element.static voidAssert that an array contains elements; that is, it must not benulland must contain at least one element.static voidnotEmpty(Collection<?> collection) Deprecated.as of 4.3.7, in favor ofnotEmpty(Collection, String)static voidnotEmpty(Collection<?> collection, String message) Assert that a collection contains elements; that is, it must not benulland must contain at least one element.static voidnotEmpty(Collection<?> collection, Supplier<String> messageSupplier) Assert that a collection contains elements; that is, it must not benulland must contain at least one element.static voidDeprecated.as of 4.3.7, in favor ofnotEmpty(Map, String)static voidAssert that a Map contains entries; that is, it must not benulland must contain at least one entry.static voidAssert that a Map contains entries; that is, it must not benulland must contain at least one entry.static voidDeprecated.as of 4.3.7, in favor ofnotNull(Object, String)static voidAssert that an object is notnull.static voidAssert that an object is notnull.static voidstate(boolean expression) Deprecated.as of 4.3.7, in favor ofstate(boolean, String)static voidAssert a boolean expression, throwing anIllegalStateExceptionif the expression evaluates tofalse.static voidAssert a boolean expression, throwing anIllegalStateExceptionif the expression evaluates tofalse.
- 
Constructor Details- 
Assertpublic Assert()
 
- 
- 
Method Details- 
stateAssert a boolean expression, throwing anIllegalStateExceptionif the expression evaluates tofalse.Call isTrue(boolean, java.lang.String)if you wish to throw anIllegalArgumentExceptionon an assertion failure.Assert.state(id == null, "The id property must not already be initialized"); - Parameters:
- expression- a boolean expression
- message- the exception message to use if the assertion fails
- Throws:
- IllegalStateException- if- expressionis- false
 
- 
stateAssert a boolean expression, throwing anIllegalStateExceptionif the expression evaluates tofalse.Call isTrue(boolean, java.lang.String)if you wish to throw anIllegalArgumentExceptionon an assertion failure.Assert.state(entity.getId() == null, () -> "ID for entity " + entity.getName() + " must not already be initialized");- Parameters:
- expression- a boolean expression
- messageSupplier- a supplier for the exception message to use if the assertion fails
- Throws:
- IllegalStateException- if- expressionis- false
- Since:
- 5.0
 
- 
stateDeprecated.as of 4.3.7, in favor ofstate(boolean, String)Assert a boolean expression, throwing anIllegalStateExceptionif the expression evaluates tofalse.
- 
isTrueAssert a boolean expression, throwing anIllegalArgumentExceptionif the expression evaluates tofalse.Assert.isTrue(i > 0, "The value must be greater than zero"); - Parameters:
- expression- a boolean expression
- message- the exception message to use if the assertion fails
- Throws:
- IllegalArgumentException- if- expressionis- false
 
- 
isTrueAssert a boolean expression, throwing anIllegalArgumentExceptionif the expression evaluates tofalse.Assert.isTrue(i > 0, () -> "The value '" + i + "' must be greater than zero"); - Parameters:
- expression- a boolean expression
- messageSupplier- a supplier for the exception message to use if the assertion fails
- Throws:
- IllegalArgumentException- if- expressionis- false
- Since:
- 5.0
 
- 
isTrueDeprecated.as of 4.3.7, in favor ofisTrue(boolean, String)Assert a boolean expression, throwing anIllegalArgumentExceptionif the expression evaluates tofalse.
- 
isNullAssert that an object isnull.Assert.isNull(value, "The value must be null"); - Parameters:
- object- the object to check
- message- the exception message to use if the assertion fails
- Throws:
- IllegalArgumentException- if the object is not- null
 
- 
isNullAssert that an object isnull.Assert.isNull(value, () -> "The value '" + value + "' must be null"); - Parameters:
- object- the object to check
- messageSupplier- a supplier for the exception message to use if the assertion fails
- Throws:
- IllegalArgumentException- if the object is not- null
- Since:
- 5.0
 
- 
isNullDeprecated.as of 4.3.7, in favor ofisNull(Object, String)Assert that an object isnull.
- 
notNullAssert that an object is notnull.Assert.notNull(clazz, "The class must not be null"); - Parameters:
- object- the object to check
- message- the exception message to use if the assertion fails
- Throws:
- IllegalArgumentException- if the object is- null
 
- 
notNullAssert that an object is notnull.Assert.notNull(entity.getId(), () -> "ID for entity " + entity.getName() + " must not be null");- Parameters:
- object- the object to check
- messageSupplier- a supplier for the exception message to use if the assertion fails
- Throws:
- IllegalArgumentException- if the object is- null
- Since:
- 5.0
 
- 
notNullDeprecated.as of 4.3.7, in favor ofnotNull(Object, String)Assert that an object is notnull.
- 
hasLengthAssert that the given String is not empty; that is, it must not benulland not the empty String.Assert.hasLength(name, "Name must not be empty"); - Parameters:
- text- the String to check
- message- the exception message to use if the assertion fails
- Throws:
- IllegalArgumentException- if the text is empty
- See Also:
 
- 
hasLengthAssert that the given String is not empty; that is, it must not benulland not the empty String.Assert.hasLength(account.getName(), () -> "Name for account '" + account.getId() + "' must not be empty");- Parameters:
- text- the String to check
- messageSupplier- a supplier for the exception message to use if the assertion fails
- Throws:
- IllegalArgumentException- if the text is empty
- Since:
- 5.0
- See Also:
 
- 
hasLengthDeprecated.as of 4.3.7, in favor ofhasLength(String, String)Assert that the given String is not empty; that is, it must not benulland not the empty String.
- 
hasTextAssert that the given String contains valid text content; that is, it must not benulland must contain at least one non-whitespace character.Assert.hasText(name, "'name' must not be empty"); - Parameters:
- text- the String to check
- message- the exception message to use if the assertion fails
- Throws:
- IllegalArgumentException- if the text does not contain valid text content
- See Also:
 
- 
hasTextAssert that the given String contains valid text content; that is, it must not benulland must contain at least one non-whitespace character.Assert.hasText(account.getName(), () -> "Name for account '" + account.getId() + "' must not be empty");- Parameters:
- text- the String to check
- messageSupplier- a supplier for the exception message to use if the assertion fails
- Throws:
- IllegalArgumentException- if the text does not contain valid text content
- Since:
- 5.0
- See Also:
 
- 
hasTextDeprecated.as of 4.3.7, in favor ofhasText(String, String)Assert that the given String contains valid text content; that is, it must not benulland must contain at least one non-whitespace character.
- 
doesNotContainAssert that the given text does not contain the given substring.Assert.doesNotContain(name, "rod", "Name must not contain 'rod'"); - Parameters:
- textToSearch- the text to search
- substring- the substring to find within the text
- message- the exception message to use if the assertion fails
- Throws:
- IllegalArgumentException- if the text contains the substring
 
- 
doesNotContainpublic static void doesNotContain(@Nullable String textToSearch, String substring, Supplier<String> messageSupplier) Assert that the given text does not contain the given substring.Assert.doesNotContain(name, forbidden, () -> "Name must not contain '" + forbidden + "'"); - Parameters:
- textToSearch- the text to search
- substring- the substring to find within the text
- messageSupplier- a supplier for the exception message to use if the assertion fails
- Throws:
- IllegalArgumentException- if the text contains the substring
- Since:
- 5.0
 
- 
doesNotContainDeprecated.as of 4.3.7, in favor ofdoesNotContain(String, String, String)Assert that the given text does not contain the given substring.
- 
notEmptyAssert that an array contains elements; that is, it must not benulland must contain at least one element.Assert.notEmpty(array, "The array must contain elements"); - Parameters:
- array- the array to check
- message- the exception message to use if the assertion fails
- Throws:
- IllegalArgumentException- if the object array is- nullor contains no elements
 
- 
notEmptyAssert that an array contains elements; that is, it must not benulland must contain at least one element.Assert.notEmpty(array, () -> "The " + arrayType + " array must contain elements"); - Parameters:
- array- the array to check
- messageSupplier- a supplier for the exception message to use if the assertion fails
- Throws:
- IllegalArgumentException- if the object array is- nullor contains no elements
- Since:
- 5.0
 
- 
notEmptyDeprecated.as of 4.3.7, in favor ofnotEmpty(Object[], String)Assert that an array contains elements; that is, it must not benulland must contain at least one element.
- 
noNullElementsAssert that an array contains nonullelements.Note: Does not complain if the array is empty! Assert.noNullElements(array, "The array must contain non-null elements"); - Parameters:
- array- the array to check
- message- the exception message to use if the assertion fails
- Throws:
- IllegalArgumentException- if the object array contains a- nullelement
 
- 
noNullElementsAssert that an array contains nonullelements.Note: Does not complain if the array is empty! Assert.noNullElements(array, () -> "The " + arrayType + " array must contain non-null elements"); - Parameters:
- array- the array to check
- messageSupplier- a supplier for the exception message to use if the assertion fails
- Throws:
- IllegalArgumentException- if the object array contains a- nullelement
- Since:
- 5.0
 
- 
noNullElementsDeprecated.as of 4.3.7, in favor ofnoNullElements(Object[], String)Assert that an array contains nonullelements.
- 
notEmptyAssert that a collection contains elements; that is, it must not benulland must contain at least one element.Assert.notEmpty(collection, "Collection must contain elements"); - Parameters:
- collection- the collection to check
- message- the exception message to use if the assertion fails
- Throws:
- IllegalArgumentException- if the collection is- nullor contains no elements
 
- 
notEmptyAssert that a collection contains elements; that is, it must not benulland must contain at least one element.Assert.notEmpty(collection, () -> "The " + collectionType + " collection must contain elements"); - Parameters:
- collection- the collection to check
- messageSupplier- a supplier for the exception message to use if the assertion fails
- Throws:
- IllegalArgumentException- if the collection is- nullor contains no elements
- Since:
- 5.0
 
- 
notEmptyDeprecated.as of 4.3.7, in favor ofnotEmpty(Collection, String)Assert that a collection contains elements; that is, it must not benulland must contain at least one element.
- 
noNullElementsAssert that a collection contains nonullelements.Note: Does not complain if the collection is empty! Assert.noNullElements(collection, "Collection must contain non-null elements"); - Parameters:
- collection- the collection to check
- message- the exception message to use if the assertion fails
- Throws:
- IllegalArgumentException- if the collection contains a- nullelement
- Since:
- 5.2
 
- 
noNullElementspublic static void noNullElements(@Nullable Collection<?> collection, Supplier<String> messageSupplier) Assert that a collection contains nonullelements.Note: Does not complain if the collection is empty! Assert.noNullElements(collection, () -> "Collection " + collectionName + " must contain non-null elements"); - Parameters:
- collection- the collection to check
- messageSupplier- a supplier for the exception message to use if the assertion fails
- Throws:
- IllegalArgumentException- if the collection contains a- nullelement
- Since:
- 5.2
 
- 
notEmptyAssert that a Map contains entries; that is, it must not benulland must contain at least one entry.Assert.notEmpty(map, "Map must contain entries"); - Parameters:
- map- the map to check
- message- the exception message to use if the assertion fails
- Throws:
- IllegalArgumentException- if the map is- nullor contains no entries
 
- 
notEmptyAssert that a Map contains entries; that is, it must not benulland must contain at least one entry.Assert.notEmpty(map, () -> "The " + mapType + " map must contain entries"); - Parameters:
- map- the map to check
- messageSupplier- a supplier for the exception message to use if the assertion fails
- Throws:
- IllegalArgumentException- if the map is- nullor contains no entries
- Since:
- 5.0
 
- 
notEmptyDeprecated.as of 4.3.7, in favor ofnotEmpty(Map, String)Assert that a Map contains entries; that is, it must not benulland must contain at least one entry.
- 
isInstanceOfAssert that the provided object is an instance of the provided class.Assert.instanceOf(Foo.class, foo, "Foo expected"); - Parameters:
- type- the type to check against
- obj- the object to check
- message- a message which will be prepended to provide further context. If it is empty or ends in ":" or ";" or "," or ".", a full exception message will be appended. If it ends in a space, the name of the offending object's type will be appended. In any other case, a ":" with a space and the name of the offending object's type will be appended.
- Throws:
- IllegalArgumentException- if the object is not an instance of type
 
- 
isInstanceOfpublic static void isInstanceOf(Class<?> type, @Nullable Object obj, Supplier<String> messageSupplier) Assert that the provided object is an instance of the provided class.Assert.instanceOf(Foo.class, foo, () -> "Processing " + Foo.class.getSimpleName() + ":"); - Parameters:
- type- the type to check against
- obj- the object to check
- messageSupplier- a supplier for the exception message to use if the assertion fails. See- isInstanceOf(Class, Object, String)for details.
- Throws:
- IllegalArgumentException- if the object is not an instance of type
- Since:
- 5.0
 
- 
isInstanceOfAssert that the provided object is an instance of the provided class.Assert.instanceOf(Foo.class, foo); - Parameters:
- type- the type to check against
- obj- the object to check
- Throws:
- IllegalArgumentException- if the object is not an instance of type
 
- 
isAssignableAssert thatsuperType.isAssignableFrom(subType)istrue.Assert.isAssignable(Number.class, myClass, "Number expected"); - Parameters:
- superType- the super type to check against
- subType- the sub type to check
- message- a message which will be prepended to provide further context. If it is empty or ends in ":" or ";" or "," or ".", a full exception message will be appended. If it ends in a space, the name of the offending sub type will be appended. In any other case, a ":" with a space and the name of the offending sub type will be appended.
- Throws:
- IllegalArgumentException- if the classes are not assignable
 
- 
isAssignablepublic static void isAssignable(Class<?> superType, @Nullable Class<?> subType, Supplier<String> messageSupplier) Assert thatsuperType.isAssignableFrom(subType)istrue.Assert.isAssignable(Number.class, myClass, () -> "Processing " + myAttributeName + ":"); - Parameters:
- superType- the super type to check against
- subType- the sub type to check
- messageSupplier- a supplier for the exception message to use if the assertion fails. See- isAssignable(Class, Class, String)for details.
- Throws:
- IllegalArgumentException- if the classes are not assignable
- Since:
- 5.0
 
- 
isAssignableAssert thatsuperType.isAssignableFrom(subType)istrue.Assert.isAssignable(Number.class, myClass); - Parameters:
- superType- the super type to check
- subType- the sub type to check
- Throws:
- IllegalArgumentException- if the classes are not assignable
 
 
- 
doesNotContain(String, String, String)