【Guava】PreConditions來校驗參數

前置條件:讓方法調用的前置條件判斷更簡單。

在我們的日常開發中,經常要對入參進行一定的參數校驗,比如是否爲空,參數的取值範圍是否符合要求等等。這種參數校驗如果我們單獨進行校驗的話,代碼的重複率比較高,也不是很優雅。Guava提供了一個類PreConditions來統一校驗我們的參數,同時可以拋出對應的異常信息,將參數校驗的工作進行了統一。

下面是它提供的幾種校驗方法:

方法聲明(不包含額外參數) 描述 檢查失敗時拋出的異常
checkArgument(boolean) 檢查boolean是否爲true,用來檢查傳遞給方法的參數。 IllegalArgumentException
checkNotNull(T) 檢查value是否爲null,該方法直接返回value,因此可以內嵌使用checkNotNull。 NullPointerException
checkState(boolean) 用來檢查對象的某些狀態。 IllegalStateException
checkElementIndex(int index, int size) 檢查index作爲索引值對某個列表、字符串或數組是否有效。index>=0 && index
Preconditions.checkNotNull(name, "name may not be null");
Preconditions.checkArgument(age >= 18 && age < 99, "age must in range (18,99)");
Preconditions.checkArgument(desc !=null && desc.length() < 10, "desc too long, max length is ", 10);

在編碼時,如果某個值有多重的前置條件,我們建議你把它們放到不同的行,這樣有助於在調試時定位。此外,把每個前置條件放到不同的行,也可以幫助你編寫清晰和有用的錯誤消息。
看似Preconditions實現很簡單,他的意義在於爲我們提供了同一的參數校驗,並對不同的異常情況拋出合適類型的異常,並對異常信息做格式化。

發佈了106 篇原創文章 · 獲贊 102 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章