位置:org.springframework.util
�实现接口:无
继承类:无(抽象类)
作用:提供辅助程序验证的工具API
一、效果
通常程序验证,数据合法性检查的编写方式:
if (name == null || name.equls("")) {
throw new IllegalArgumentException("参数错误!");
}
这样写影响了代码的可读性。使用Assert工具类后上面的代码可以简化为:
Assert.hasText(name, "参数错误!");
二、API
/**
Assert类中方法一般支持三种重载
1.isTrue(boolean expression) 单一布尔,方法内置断言信息
2.isTrue(boolean expression, String message) 布尔类型与字符串类型的断言信息
3.isTrue(boolean expression, Supplier<String> messageSupplier) 布尔类型与容器类型的断言信息
常用API包括:
*/
public static void isTrue(boolean expression); // 断言表达式为真
public static void isNull(@Nullable Object object); // 断言对象为空
public static void hasLength(@Nullable String text); // 断言字符串有长度
public static void hasText(@Nullable String text); // 断言字符串有文本内容
public static void doesNotContain(@Nullable String textToSearch, String substring); // 断言给定的文本不包含给定的子字符
public static void notEmpty(@Nullable Object[] array); // 断言数组不为空(至少包含一个元素)
public static void isInstanceOf(Class<?> type, @Nullable Object obj); // 断言所提供的对象是所提供类的实例
三、总结
Spring Assert的API特点:
- 均为static方法
- 抛出IllegalArgumentException 或 IllegalStateException异常
- 第一个参数通常是需验证的对象或逻辑条件
- 第二个参数通常是异常消息,用于验证失败时显示
- 第二个参数支持String字符串与Supplier容器两种类型传输
四、补充
Spring中Assert工具类与Java Aassert关键字的区别:
Assert关键字是Java1.4后新引入的关键字语法。使用时直接跟布尔表达式与返回内容
assert关键字是受java启动项配置的assert 1 == 0 : "err";