Basic Guava Utilities-Preconditions

Preconditions類包含有許多的靜態方法來檢查代碼的狀態。
你可以自己來實現預置的條件判斷,像下面的代碼段:

 if(someObj == null){
   throw new IllegalArgumentException(" someObj must not be null");
 }

但是,使用Precondition(靜態導入)類來實現同樣的功能,相當的簡潔:

checkNotNull(someObj,"someObj must not be null");

下面是Precondition類的幾種常用方法示例:

public class PreconditionExample {
   private String label;
   private int[] values = new int[5];
   private int currentIndex;

   public PreconditionExample(String label) {
     //returns value of object if not null
     this.label = checkNotNull(label,"Label can''t be null");
   }

   public void updateCurrentIndexValue(int index, int valueToSet) {
     //Check index valid first
     this.currentIndex = checkElementIndex(index, values.length,"Index out of bounds for values");
     //Validate valueToSet
     checkArgument(valueToSet <= 100,"Value can't be more than 100");
     values[this.currentIndex] = valueToSet;
   }

   public void doOperation(){
     checkState(validateObjectState(),"Can't perform operation");
   }

   private boolean validateObjectState(){
     return this.label.equalsIgnoreCase("open") && values[this.currentIndex]==10;
   }
}

上面代碼中四個Precondition類中方法的簡介:

  • checkNotNull (T object, Object message): 如果object不為空,直接返回object;否則,拋出NullPointerException異常。
  • checkElementIndex (int index, int size, Object message): 如果index的值在給定的數組、集合和字符的長度size范圍之類,則返回index;否則,拋出IndexOutOfBoundsException異常。
  • checkArgument (Boolean expression, Object message): 此方法接受一個返回值為boolean類型的expression表達式,如果表達式不為true,則拋出IllegalArgumentException異常。
  • checkState (Boolean expression, Object message):同checkArgument
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,991評論 19 139
  • 轉至元數據結尾創建: 董瀟偉,最新修改于: 十二月 23, 2016 轉至元數據起始第一章:isa和Class一....
    40c0490e5268閱讀 1,789評論 0 9
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,778評論 18 399
  • 逛逛朋友圈,空間,無論是哪個類型的人,貌似都總有一種好的姿態生活著,而我一天又一天,真的有什么進步或者成長嗎...
    這個姑娘_閱讀 95評論 0 0
  • 冬至時節,太陽的笑臉就像害羞的閨女躲在閨房中一樣,舍不得露出半點笑容,數日地連綿陰雨讓我的心情看似郁悶至極。 從新...
    JasonLi2017閱讀 343評論 0 0