这是我参与11月更文挑战的第2天,活动详情查看:11月更文挑战
Java中Assert的使用日常较少, 使用Assert可以提高代码的可读性,但过度使用,会导致不利于后期代码的维护.
1 Spring的Assert的简介
Java中断言assert是一个关键字, 主要是验证某些条件是否成立. 在一些编辑器中,需要开启assert断言功能,才可以使用,如IDEA,Eclipse等 ,很不方便使用,在生产等环境不适用, 故常常使用的是Spring框架封装的org.springframework.util.Assert断言.
部分源代码:
1 | java复制代码public abstract class Assert { |
从代码可知,Assert断言的表达式基本分为两类
- Assert.方法名 (布尔表达式) : 这类方法都标记过时, 都调用第二类方法
- Assert.方法名 (布尔表达式,错误提示信息) : 这类方法, 如果布尔表达式不满足,会抛出异常,并将异常信息封装.
在使用方法时不满足布尔表达式, 就会抛出相应的异常,如IllegalStateException和IllegalArgumentException, 此类异常都属于运行时异常.
2 Spring的Assert的使用
1 | java复制代码 if (条件为真) { |
上述可替换成
1 | java复制代码Assert.isTrue(条件为真, "条件不满足"); |
1 | java复制代码 public static void main(String[] args) { |
使用时发现,Spring中主要抛出非法参数异常和非法状态异常, 主要用来做参数的校验,可以提高代码的可读性.对于一些说法, 关于可以替代if-else语句, 是不合理的. if-else主要用来做条件分支判断,满足那个就进入那个, 而Assert断言,满足条件才会向下运行,不满足,直接抛出异常,二者应用场景不一致.
参考资料:
zhuanlan.zhihu.com/p/265444322
本文转载自: 掘金