Preconditions是Guava中的一個類庫,用於檢查傳入參數,一個常見用法如下:
boolean findElement(List<String> elements, String desiredElement) { checkNotNull(elements); // ...}
用法簡單明了,就是檢查參數elements是不是null,如果是null則扔出NullPointerException。當然Preconditions類裡還有其它方法,可能滿足幾乎所有的傳入參數的檢查。 Preconditions的好處在於,它在call stack中更容易理解,並且每個方法還提供了格式化字符串的變體,形如:
checkArgument(i < j, "Expected i < j, but %s > %s", i, j);
和Java自帶的assert關鍵字不同的是,Preconditions的方法在release版本中依然有效,這麼做的原因,大概是因為Java已經很慢了,不在乎多做些檢查吧-_-