断言-Assert

由来

Java中有assert关键字,但是存在许多问题:

  • assert关键字需要在运行时候显式开启才能生效,否则你的断言就没有任何意义。
  • 用assert代替if是陷阱之二。assert的判断和if语句差不多,但两者的作用有着本质的区别:assert关键字本意上是为测试调试程序时使用的,但如果不小心用assert来控制了程序的业务流程,那在测试调试结束后去掉assert关键字就意味着修改了程序的正常的逻辑。
  • assert断言失败将面临程序的退出。因此,并不建议使用此关键字。相应的,在Hutool中封装了更加友好的Assert类,用于断言判定。

介绍

Assert类更像是Junit中的Assert类,也很像Guava中的Preconditions,主要作用是在方法或者任何地方对参数的有效性做校验。当不满足断言条件时,会抛出IllegalArgumentException或IllegalStateException异常。

使用

String a = null;
cn.hutool.lang.Assert.isNull(a);

更多方法

  • isTrue 是否True
  • isNull 是否是null值,不为null抛出异常
  • notNull 是否非null值
  • notEmpty 是否非空
  • notBlank 是否非空白符
  • notContain 是否为子串
  • notEmpty 是否非空
  • noNullElements 数组中是否包含null元素
  • isInstanceOf 是否类实例
  • isAssignable 是子类和父类关系
  • state 会抛出IllegalStateException异常

看完两件小事

如果你觉得这篇文章对你挺有启发,我想请你帮我两个小忙:

  1. 关注我们的 GitHub 博客,让我们成为长期关系
  2. 把这篇文章分享给你的朋友 / 交流群,让更多的人看到,一起进步,一起成长!
  3. 关注公众号 「方志朋」,公众号后台回复「资源」 免费领取我精心整理的前端进阶资源教程

JS中文网是中国领先的新一代开发者社区和专业的技术媒体,一个帮助开发者成长的社区,目前已经覆盖和服务了超过 300 万开发者,你每天都可以在这里找到技术世界的头条内容。欢迎热爱技术的你一起加入交流与学习,JS中文网的使命是帮助开发者用代码改变世界

results matching ""

    No results matching ""