一、Assert断言工具类,通常用于数据合法性检查
下面来介绍我收集的一下Assert 类中的常用断言方法:
if(name == null || name.equals("")) {
throw new IllegalArgumentException("参数错误");
}
用Assert简化可写为:Assert.hasText(name, "参数错误");下面来介绍我收集的一下Assert 类中的常用断言方法:
- Assert.notNull(Object object, "object is required") - 对象非空
- Assert.isTrue(Object object, "object must be true") - 对象必须为true
- Assert.notEmpty(Collection collection, "collection must not be empty") - 集合非空
- Assert.hasLength(String text, "text must be specified") - 字符不为null且字符长度不为0
- Assert.hasText(String text, "text must not be empty") - text 不为null且必须至少包含一个非空格的字符
- Assert.isInstanceOf(Class clazz, Object obj, "clazz must be of type [clazz]") - obj必须能被正确造型成为clazz 指定的类
二、TimeUnit
TimeUnit是java.util.concurrent包下面的一个类,TimeUnit提供了可读性更好的线程暂停操作,通常用来替换Thread.sleep()
Thread.sleep()它是一个静态方法,暂停线程时它不会释放锁,该方法会抛出InterrupttedException异常
Thread.sleep()是一个重载方法,可以接收长整型毫秒和长整型的纳秒参数,这样对程序员造成的一个问题就是很难知道到底当前线程是睡眠了多少秒、分、小时或者天
例如:Thread.sleep(2400000)需要换算才能直观知道时间
TimeUnit类解决了Thread.sleep()参数可读性这个问题,通过指定DAYS、HOURS、MINUTES,SECONDS、MILLISECONDS和NANOSECONDS
例如:TimeUnit.MINUTES.sleep(4);很清晰知道是4分钟