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,否则将抛出异常;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.Assert;

/**
 * Title: Test
 *
 * @date 2018/2/10 15:32
 */
public class Test {
    private final static Logger logger = LoggerFactory.getLogger(Test.class);

    public static void main(String[] args) {
        Test test = new Test();
        test.f1();
    }

    public void f1() {
        try {
//            String s1 = null;//hasText,notNull,hasLength均报异常
//            String s1 = "";//hasText报异常,notNull不报异常,hasLength报异常
//            String s1 = " ";//一个空格,hasText报异常,notNull不报异常,hasLength不报异常
//            String s1 = "   ";//三个空格,hasText报异常,notNull不报异常,hasLength不报异常
            String s1 = "s";//hasText,notNull,hasLength均不报异常
            Assert.hasText(s1, "hasText,s1不能为空,当前为空已抛出异常");
            Assert.notNull(s1, "notNull,s1不能为空,当前为空已抛出异常");
            Assert.hasLength(s1, "hasLength,s1不能为空,当前为空已抛出异常");

            Assert.isTrue(1 < 2, "1<2需要为true");//不报异常
            Assert.isTrue(1 > 2, "1<2需要为true");//报异常

            Assert.isInstanceOf(String.class,s1);//不报异常
            Assert.isInstanceOf(Object.class,s1);//不报异常
            Assert.isInstanceOf(Integer.class,s1);//报异常

            Assert.isAssignable(String.class,s1.getClass(),"s1需要是String类型的子类");//不报异常
            Assert.isAssignable(String.class,new Integer(1).getClass(),"s1需要是String类型的子类");//报异常
            Assert.isAssignable(Object.class,s1.getClass(),"s1需要是Object类型的子类");//不报异常
            Assert.isAssignable(String.class,new Object().getClass(),"subType需要是superType的子类");//报异常
        } catch (Exception e) {
            logger.error(e.getMessage());
        }
        logger.info("运行正常");
    }
}

//Assert.notNull:只有输入空,才会报异常;输入空字符比如""、空格不报异常;
//Assert.hasLength:如果输入空、空字符报异常;输入空格不报异常;
//Assert.hasText:只有输入空、空字符比如""、空格或多个空格都会报异常;(不把空格算作内容)
//校验的越来越严格

转自:https://www.cnblogs.com/littleYellowDoggy/p/7119605.html

 

  • 5
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值