guava 提供 Preconditions 做爲代碼校驗的工具類,用來簡化開發中對代碼的校驗或預處理,在邏輯開始前進行合理性校驗,避免參數傳入過深致使的數據錯誤。express
而且可以在不符合校驗條件的地方,準確的爲咱們顯示出問題所在。Preconditions 進行了大量方法的重載,整體來講很簡單,看下面的總結就懂了。工具
checkArgument(boolean expression, @Nullable String errorMessageTemplate, @Nullable Object... errorMessageArgs):校驗表達式是否爲真,不爲真時顯示錯誤信息,錯誤信息中容許使用佔位符。 //校驗表達式是否正確,並使用佔位符輸出錯誤信息 Preconditions.checkArgument(3 > 4, "%s is wrong", "3 > 4");
checkState(boolean expression):校驗表達式是否爲真,通常用做校驗方法返回是否爲真。 checkState(boolean expression, @Nullable Object errorMessage):當表達式爲假的時候,顯示指定的錯誤信息。 checkState(boolean expression,@Nullable String errorMessageTemplate,@Nullable Object... errorMessageArgs):校驗表達式容許在錯誤信息中使用佔位符。 //校驗表達式是否正確,並使用佔位符輸出錯誤信息,使用方法做爲表達式 Preconditions.checkState(testState(), "%s is wrong", "testState()");
checkNotNull(T reference):校驗對象是否爲空。 checkNotNull(T reference, @Nullable Object errorMessage):對象爲空時顯示指定的錯誤信息。 checkNotNull(T reference, @Nullable String errorMessageTemplate,@Nullable Object... errorMessageArgs):容許在錯誤信息中使用佔位符。 //校驗對象是否爲空,並使用佔位符輸出錯誤信息 Preconditions.checkNotNull(testObject(), "%s is null", "testObject()");
checkElementIndex( int index, int size, @Nullable String desc):校驗元素的索引值是否有效,index大於等於0小於size,在無效時顯示錯誤描述信息。 checkElementIndex(int index, int size):錯誤描述信息爲「index」。 //校驗元素索引是否有效 ,使用checkPositionIndex校驗 Preconditions.checkElementIndex(17, list.size());
checkPositionIndex(int index, int size, @Nullable String desc):校驗元素的索引值是否有效,index大於等於0小於等於size,在無效時顯示錯誤描述信息。 checkPositionIndex(int index, int size):錯誤描述信息爲「index」。 //校驗元素索引是否有效,使用checkPositionIndex校驗,在臨界值不產生異常 Preconditions.checkPositionIndex(17, list.size());
checkPositionIndexes(int start, int end, int size):校驗大於等於start,小於end的list的長度是否爲size。 //校驗是不是有效的索引區間 Preconditions.checkPositionIndexes(3, 11, list.size());