位置:org.springframework.util
�实现接口:无
继承类:无(抽象类)
作用:提供辅助程序验证的工具API

一、效果

通常程序验证,数据合法性检查的编写方式:

  1. if (name == null || name.equls("")) {
  2. throw new IllegalArgumentException("参数错误!");
  3. }

这样写影响了代码的可读性。使用Assert工具类后上面的代码可以简化为:

  1. Assert.hasText(name, "参数错误!");

二、API

  1. /**
  2. Assert类中方法一般支持三种重载
  3. 1.isTrue(boolean expression) 单一布尔,方法内置断言信息
  4. 2.isTrue(boolean expression, String message) 布尔类型与字符串类型的断言信息
  5. 3.isTrue(boolean expression, Supplier<String> messageSupplier) 布尔类型与容器类型的断言信息
  6. 常用API包括:
  7. */
  8. public static void isTrue(boolean expression); // 断言表达式为真
  9. public static void isNull(@Nullable Object object); // 断言对象为空
  10. public static void hasLength(@Nullable String text); // 断言字符串有长度
  11. public static void hasText(@Nullable String text); // 断言字符串有文本内容
  12. public static void doesNotContain(@Nullable String textToSearch, String substring); // 断言给定的文本不包含给定的子字符
  13. public static void notEmpty(@Nullable Object[] array); // 断言数组不为空(至少包含一个元素)
  14. public static void isInstanceOf(Class<?> type, @Nullable Object obj); // 断言所提供的对象是所提供类的实例

三、总结

Spring Assert的API特点:

  • 均为static方法
  • 抛出IllegalArgumentException 或 IllegalStateException异常
  • 第一个参数通常是需验证的对象或逻辑条件
  • 第二个参数通常是异常消息,用于验证失败时显示
  • 第二个参数支持String字符串与Supplier容器两种类型传输

    四、补充

    Spring中Assert工具类与Java Aassert关键字的区别:
    Assert关键字是Java1.4后新引入的关键字语法。使用时直接跟布尔表达式与返回内容
    1. assert 1 == 0 : "err";
    assert关键字是受java启动项配置的