核心(Hutool-core)语言特性(断言-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,否则抛出IllegalArgumentException异常
isNull 必须是null值
notNull 不能是null值
notEmpty 不能为空,支持字符串,数组,集合等
notBlank 不能是空白字符串
notContain 不能包含指定的子串
noNullElements 数组中不能包含null元素
isInstanceOf 必须是指定类的实例
isAssignable 必须是子类和父类关系
state 会抛出IllegalStateException异常
分类:
java / hutool工具
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~