Java中使用Preconditions来检查传入参数介绍

时间:2021-08-09 23:00:02

Preconditions是Guava中的一个类库,用于检查传入参数,一个常见用法如下:

 

?
1
2
3
4
boolean findElement(List<String> elements, String desiredElement) {
 checkNotNull(elements);
 // ...
}

用法简单明了,就是检查参数elements是不是null,如果是null则扔出NullPointerException。当然Preconditions类里还有其它方法,可能满足几乎所有的传入参数的检查。Preconditions的好处在于,它在call stack中更容易理解,并且每个方法还提供了格式化字符串的变体,形如:

?
1
checkArgument(i < j, "Expected i < j, but %s > %s", i, j);

和Java自带的assert关键字不同的是,Preconditions的方法在release版本中依然有效,这么做的原因,大概是因为Java已经很慢了,不在乎多做些检查吧-_-