Guava學習筆記之Preconditions參數檢驗

在日常開發中,肯定是需要對參數進行校驗,以保證業務邏輯能順利執行下去,比如參數值必須大於0,不能爲空等。平時多數研發的開發習慣是if else,但是參數如果較多,代碼量多不太好看。

Guava 提供了一系列的靜態方法用於校驗函數和類的構造器是否符合預期, 並稱其爲前置條件(preconditions). 如果前置條件校驗失敗, 就會拋出一個指定的異常.這種方式就比較優雅了

例:之前是if else的方式

@RequestMapping(value = "/workbench/query/user/list", method = RequestMethod.GET)
@ResponseBody
public Result workbenchCustomerStastics(String day,String name,Integer age,Integer sex,Integer type ) {
	if(StringUtils.isBlank(day)){
		return Result.getResultError("查詢條件不能爲空");
	}
	if(StringUtils.isBlank(name)){
		return Result.getResultError("名稱不能爲空");
	}
	if(age==null||age<=0){
		return Result.getResultError("年齡校驗錯誤,年齡必須大於0");
	}
	if(sex==null||sex!=1||sex!=0){
		return Result.getResultError("性別校驗錯誤");
	}
	if(type==null){
		return Result.getResultError("類型不能爲空");
	}
}

使用Preconditions之後

@RequestMapping(value = "/workbench/query/user/list", method = RequestMethod.GET)
@ResponseBody
public Result workbenchCustomerStastics(String day,String name,Integer age,Integer sex,Integer type ) {
	Preconditions.checkArgument(!StringUtils.isBlank(day),"查詢條件不能爲空");
	Preconditions.checkArgument(!StringUtils.isBlank(name),"名稱不能 爲空");
	Preconditions.checkArgument(age!=null&&age>0,"年齡校驗錯誤,年齡必須大於0");
	Preconditions.checkArgument(!(sex==null||sex!=1||sex!=0)),"性別校驗錯誤");
	Preconditions.checkNotNull(type,"類型不能爲空");
}

Preconditions提供checkArgument, checkArgument, checkState等校驗方式,每個驗證方法都有多個重載,異常信息也是可以用佔位符的,如:


public static void checkArgument(boolean expression);
public static void checkArgument(boolean expression, @Nullable Object errorMessage);
public static void checkArgument(boolean expression,@Nullable String errorMessageTemplate,@Nullable Object... errorMessageArgs)

用於參數校驗只需要Preconditions這個類就可以了,裏面還有很多其他的方法,有興趣的童鞋可以看源碼,很簡單就能使用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章