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