类 AbstractAssert
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.
- 从以下版本开始:
- 1.1.2
- 作者:
- Keith Donald, Juergen Hoeller, Sam Brannen, Colin Sampaleanu, Rob Harrop
-
方法概要
修饰符和类型方法说明static voiddoesNotContain(String textToSearch, String substring) 已过时。static voiddoesNotContain(String textToSearch, String substring, Supplier<String> messageSupplier) Assert that the given text does not contain the given substring.static void已过时。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 void已过时。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 void已过时。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) 已过时。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) 已过时。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 void已过时。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) 已过时。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 void已过时。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 void已过时。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) 已过时。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.
-
方法详细资料
-
state
Assert a boolean expression, throwing anIllegalStateExceptionif the expression evaluates tofalse. CallisTrue(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");
- 参数:
expression- a boolean expressionmessage- the exception message to use if the assertion fails- 抛出:
IllegalStateException- ifexpressionisfalse
-
state
Assert a boolean expression, throwing anIllegalStateExceptionif the expression evaluates tofalse. CallisTrue(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");- 参数:
expression- a boolean expressionmessageSupplier- a supplier for the exception message to use if the assertion fails- 抛出:
IllegalStateException- ifexpressionisfalse- 从以下版本开始:
- 5.0
-
state
已过时。as of 4.3.7, in favor ofstate(boolean, String)Assert a boolean expression, throwing anIllegalStateExceptionif the expression evaluates tofalse. -
isTrue
Assert a boolean expression, throwing anIllegalArgumentExceptionif the expression evaluates tofalse.Assert.isTrue(i > 0, "The value must be greater than zero");
- 参数:
expression- a boolean expressionmessage- the exception message to use if the assertion fails- 抛出:
IllegalArgumentException- ifexpressionisfalse
-
isTrue
Assert a boolean expression, throwing anIllegalArgumentExceptionif the expression evaluates tofalse.Assert.isTrue(i > 0, () -> "The value '" + i + "' must be greater than zero");
- 参数:
expression- a boolean expressionmessageSupplier- a supplier for the exception message to use if the assertion fails- 抛出:
IllegalArgumentException- ifexpressionisfalse- 从以下版本开始:
- 5.0
-
isTrue
已过时。as of 4.3.7, in favor ofisTrue(boolean, String)Assert a boolean expression, throwing anIllegalArgumentExceptionif the expression evaluates tofalse. -
isNull
Assert that an object isnull.Assert.isNull(value, "The value must be null");
- 参数:
object- the object to checkmessage- the exception message to use if the assertion fails- 抛出:
IllegalArgumentException- if the object is notnull
-
isNull
Assert that an object isnull.Assert.isNull(value, () -> "The value '" + value + "' must be null");
- 参数:
object- the object to checkmessageSupplier- a supplier for the exception message to use if the assertion fails- 抛出:
IllegalArgumentException- if the object is notnull- 从以下版本开始:
- 5.0
-
isNull
已过时。as of 4.3.7, in favor ofisNull(Object, String)Assert that an object isnull. -
notNull
Assert that an object is notnull.Assert.notNull(clazz, "The class must not be null");
- 参数:
object- the object to checkmessage- the exception message to use if the assertion fails- 抛出:
IllegalArgumentException- if the object isnull
-
notNull
Assert that an object is notnull.Assert.notNull(entity.getId(), () -> "ID for entity " + entity.getName() + " must not be null");- 参数:
object- the object to checkmessageSupplier- a supplier for the exception message to use if the assertion fails- 抛出:
IllegalArgumentException- if the object isnull- 从以下版本开始:
- 5.0
-
notNull
已过时。as of 4.3.7, in favor ofnotNull(Object, String)Assert that an object is notnull. -
hasLength
Assert 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");
- 参数:
text- the String to checkmessage- the exception message to use if the assertion fails- 抛出:
IllegalArgumentException- if the text is empty
-
hasLength
Assert 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");- 参数:
text- the String to checkmessageSupplier- a supplier for the exception message to use if the assertion fails- 抛出:
IllegalArgumentException- if the text is empty- 从以下版本开始:
- 5.0
-
hasLength
已过时。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. -
hasText
Assert 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");
- 参数:
text- the String to checkmessage- the exception message to use if the assertion fails- 抛出:
IllegalArgumentException- if the text does not contain valid text content
-
hasText
Assert 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");- 参数:
text- the String to checkmessageSupplier- a supplier for the exception message to use if the assertion fails- 抛出:
IllegalArgumentException- if the text does not contain valid text content- 从以下版本开始:
- 5.0
-
hasText
已过时。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. -
doesNotContain
public static void doesNotContain(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 + "'");
- 参数:
textToSearch- the text to searchsubstring- the substring to find within the textmessageSupplier- a supplier for the exception message to use if the assertion fails- 抛出:
IllegalArgumentException- if the text contains the substring- 从以下版本开始:
- 5.0
-
doesNotContain
已过时。as of 4.3.7, in favor of#doesNotContain(String, String, String)Assert that the given text does not contain the given substring. -
notEmpty
Assert 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");
- 参数:
array- the array to checkmessage- the exception message to use if the assertion fails- 抛出:
IllegalArgumentException- if the object array isnullor contains no elements
-
notEmpty
Assert 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");
- 参数:
array- the array to checkmessageSupplier- a supplier for the exception message to use if the assertion fails- 抛出:
IllegalArgumentException- if the object array isnullor contains no elements- 从以下版本开始:
- 5.0
-
notEmpty
已过时。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. -
notEmpty
Assert 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");
- 参数:
collection- the collection to checkmessageSupplier- a supplier for the exception message to use if the assertion fails- 抛出:
IllegalArgumentException- if the collection isnullor contains no elements- 从以下版本开始:
- 5.0
-
notEmpty
Assert that a collection contains elements; that is, it must not benulland must contain at least one element.Assert.notEmpty(collection, "Collection must contain elements");
- 参数:
collection- the collection to checkmessage- the exception message to use if the assertion fails- 抛出:
IllegalArgumentException- if the collection isnullor contains no elements
-
notEmpty
已过时。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. -
notEmpty
Assert that a Map contains entries; that is, it must not benulland must contain at least one entry.Assert.notEmpty(map, "Map must contain entries");
- 参数:
map- the map to checkmessage- the exception message to use if the assertion fails- 抛出:
IllegalArgumentException- if the map isnullor contains no entries
-
notEmpty
Assert 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");
- 参数:
map- the map to checkmessageSupplier- a supplier for the exception message to use if the assertion fails- 抛出:
IllegalArgumentException- if the map isnullor contains no entries- 从以下版本开始:
- 5.0
-
notEmpty
已过时。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. -
noNullElements
Assert that an array contains nonullelements. Note: Does not complain if the array is empty!Assert.noNullElements(array, "The array must contain non-null elements");
- 参数:
array- the array to checkmessage- the exception message to use if the assertion fails- 抛出:
IllegalArgumentException- if the object array contains anullelement
-
noNullElements
Assert 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");
- 参数:
array- the array to checkmessageSupplier- a supplier for the exception message to use if the assertion fails- 抛出:
IllegalArgumentException- if the object array contains anullelement- 从以下版本开始:
- 5.0
-
noNullElements
已过时。as of 4.3.7, in favor ofnoNullElements(Object[], String)Assert that an array contains nonullelements. -
noNullElements
Assert that a collection contains nonullelements. Note: Does not complain if the collection is empty!Assert.noNullElements(collection, "Collection must contain non-null elements");
- 参数:
collection- the collection to checkmessage- the exception message to use if the assertion fails- 抛出:
IllegalArgumentException- if the collection contains anullelement- 从以下版本开始:
- 5.2
-
noNullElements
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");
- 参数:
collection- the collection to checkmessageSupplier- a supplier for the exception message to use if the assertion fails- 抛出:
IllegalArgumentException- if the collection contains anullelement- 从以下版本开始:
- 5.2
-
isInstanceOf
Assert that the provided object is an instance of the provided class.Assert.instanceOf(Foo.class, foo, "Foo expected");
- 参数:
type- the type to check againstobj- the object to checkmessage- 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.- 抛出:
IllegalArgumentException- if the object is not an instance of type
-
isInstanceOf
Assert that the provided object is an instance of the provided class.Assert.instanceOf(Foo.class, foo, () -> "Processing " + Foo.class.getSimpleName() + ":");
- 参数:
type- the type to check againstobj- the object to checkmessageSupplier- a supplier for the exception message to use if the assertion fails. SeeisInstanceOf(Class, Object, String)for details.- 抛出:
IllegalArgumentException- if the object is not an instance of type- 从以下版本开始:
- 5.0
-
isInstanceOf
Assert that the provided object is an instance of the provided class.Assert.instanceOf(Foo.class, foo);
- 参数:
type- the type to check againstobj- the object to check- 抛出:
IllegalArgumentException- if the object is not an instance of type
-
isAssignable
Assert thatsuperType.isAssignableFrom(subType)istrue.Assert.isAssignable(Number.class, myClass, "Number expected");
- 参数:
superType- the super type to check againstsubType- the sub type to checkmessage- 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.- 抛出:
IllegalArgumentException- if the classes are not assignable
-
isAssignable
public static void isAssignable(Class<?> superType, Class<?> subType, Supplier<String> messageSupplier) Assert thatsuperType.isAssignableFrom(subType)istrue.Assert.isAssignable(Number.class, myClass, () -> "Processing " + myAttributeName + ":");
- 参数:
superType- the super type to check againstsubType- the sub type to checkmessageSupplier- a supplier for the exception message to use if the assertion fails. SeeisAssignable(Class, Class, String)for details.- 抛出:
IllegalArgumentException- if the classes are not assignable- 从以下版本开始:
- 5.0
-
isAssignable
Assert thatsuperType.isAssignableFrom(subType)istrue.Assert.isAssignable(Number.class, myClass);
- 参数:
superType- the super type to checksubType- the sub type to check- 抛出:
IllegalArgumentException- if the classes are not assignable
-
#doesNotContain(String, String, String)