1.Assert 类是什么?
在 Java 编程语言中,Assert 类是一个辅助性的实用工具类,通常用于在代码中进行断言检查。它提供了一组静态方法,用于在运行时验证预期条件是否满足,并在条件不满足时抛出异常。
Assert 类的常见用法包括在程序中进行参数合法性检查、状态检查以及前置条件检查等。通过使用 assert 方法,开发人员可以在代码中明确地指定某些条件必须为真,如果条件不满足,则抛出相应的异常,帮助开发人员及早发现程序中的问题。
在 Spring 框架中,Spring Assert 类是对 Java 原生断言的增强和封装,提供了一系列的静态方法,如 notNull、isTrue、hasText 等,用于简化条件检查,同时提供更详细的异常信息。
2.Assert 类中的常用断言方法:
- 1. notNull(Object object)
当 object 不为 null 时抛出异常,notNull(Object object, String message) 方法允许您通过 message 定制异常信息。和 notNull() 方法断言规则相反的方法是 isNull(Object object)/isNull(Object object, String message),它要求入参一定是 null;
- 2. isTrue(boolean expression) / isTrue(boolean expression, String message)
当 expression 不为 true 抛出异常;
- 3. notEmpty(Collection collection) / notEmpty(Collection collection, String message)
当集合未包含元素时抛出异常。
notEmpty(Map map) / notEmpty(Map map, String message) 和 notEmpty(Object[] array, String message) / notEmpty(Object[] array, String message) 分别对 Map 和 Object[] 类型的入参进行判断;
- 4. hasLength(String text) / hasLength(String text, String message)
当 text 为 null 或长度为 0 时抛出异常;
- 5. hasText(String text) / hasText(String text, String message)
text 不能为 null 且必须至少包含一个非空格的字符,否则抛出异常;
- 6. isInstanceOf(Class clazz, Object obj) / isInstanceOf(Class type, Object obj, String message)
如果 obj 不能被正确造型为 clazz 指定的类将抛出异常;
- 7. isAssignable(Class superType, Class subType) / isAssignable(Class superType, Class subType, String message)
subType 必须可以按类型匹配于 superType,否则将抛出异常;