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已经很慢了,不在乎多做些检查吧-_-