Java 的参数检查与断言 - Spring Assert

之前有一篇 Java 的参数检查与断言 介绍了在 Java 中如何应用 Guava 的 Preconditions 来进行参数检查与状态断言,原本是可以心无旁骛,专心的用它就行了,可是刚刚因琢磨我们使用 JdbcTemplate 存在的一大 Bug,阅读 Spring 的源代码时发现 spring-util 也提供了一个类似于 Gruva Preconditions 的工具类 -- Assert,它是自 Spring 1.1.2 开始就静静的躺在那儿了。

所以现在要检查参数或状态断言时反而犯上了选择综合证,虽然内心还是偏向于 Guava Preconditions,但总之不那么坚决了,也不知到底是谁在重新发明着轮子。可以说 Spring Assert 与 Guava Preconditions 的功能基本一致,也是针对入口参数或中间运行结果的检查分别抛出 IllegalArgumentException 和 IllegalStateException . 下面一张图来了解它的所有方法。

对于每一种状况的检查都有提供两个版本的重载方法,带错误消息与不带错误消息的版本。除最后两个 state() 方法抛出 IllegalStateException 外, 其他方法都是在条件不成立时抛出IllegalArgumentException.

知道有这么一个东西的存在就够了,看到它的方法就会调用,Assert 的全限类名是 org.springframework.util.Assert. 关于参数检查与状态断言我们又多了一个选择,这个多一种选择并意味着多一条路子的便利,反而是多了一重迷茫。

现在我想要使用某个工具类的时候,如 CollectionUtil, StringUtil 之类,我选择的优先顺序依次是 Guava, Apache Commons, 最后才是 Spring Util,基本上 Guava 是每个项目中必备的了。

类别: Java/JEE. 标签: . 阅读(432). 订阅评论. TrackBack.

Leave a Reply

avatar