|
@@ -2,6 +2,7 @@ package com.fuzamei.utils;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
import java.util.Set;
|
|
|
|
|
|
import javax.validation.ConstraintViolation;
|
|
@@ -9,24 +10,26 @@ import javax.validation.Validation;
|
|
|
import javax.validation.Validator;
|
|
|
import javax.validation.ValidatorFactory;
|
|
|
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
+
|
|
|
/**
|
|
|
*
|
|
|
* @author ylx
|
|
|
* @describe 针对hibernate-validator的实体类进行数据校验的工具类
|
|
|
+ * @describe 针对该项目中其它各类数据校验的工具类
|
|
|
*/
|
|
|
public class ValidationUtil {
|
|
|
|
|
|
+ private ValidationUtil(){
|
|
|
+ throw new AssertionError("不能实例化 ValidationUtil");
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
- *
|
|
|
* @Title: validate
|
|
|
- * @Description: TODO(校验一个实体类的所有校验失败信息)
|
|
|
- * @param @param bo
|
|
|
- * @param @return 设定文件
|
|
|
- * @return List<String> 返回的是数据校验的所有校验失败信息,封装在一个list中作为返回值
|
|
|
+ * @Description: TODO(仅针对校验一个实体类的所有校验失败信息)
|
|
|
+ * @return List<String> 返回的是数据校验的所有校验失败信息,封装在一个list中作为返回值
|
|
|
* @author ylx
|
|
|
* @date 2017年12月26日 下午3:48:40
|
|
|
- * @throws
|
|
|
- *
|
|
|
*/
|
|
|
public static <T> List<String> validate(T bo){
|
|
|
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
|
|
@@ -39,13 +42,49 @@ public class ValidationUtil {
|
|
|
return list; //包含所有校验出错的信息
|
|
|
|
|
|
/*使用hibernate validator出现上面的错误, 需要 注意
|
|
|
-
|
|
|
@NotNull 和 @NotEmpty 和@NotBlank 区别
|
|
|
-
|
|
|
@NotEmpty 用在集合类上面
|
|
|
@NotBlank 用在String上面
|
|
|
@NotNull 用在基本类型上*/
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * @Title: range
|
|
|
+ * @Description: TODO(针对传入的参数进行校验)
|
|
|
+ * @return void
|
|
|
+ * @author ylx
|
|
|
+ * @date 2017年12月26日 下午3:48:40
|
|
|
+ */
|
|
|
+ public static void range(Object obj,int min,Class<? extends Number> clazz){
|
|
|
+ String number=null;
|
|
|
+ try {
|
|
|
+ number=String.class.cast(obj);
|
|
|
+ try {
|
|
|
+ Long.parseLong(number);
|
|
|
+ } catch (NumberFormatException e) {
|
|
|
+ throw new RuntimeException("数据类型解析异常");
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ if(e.getMessage().equals("数据类型解析异常")){
|
|
|
+ throw new RuntimeException("数据类型解析异常");
|
|
|
+ }
|
|
|
+ Number num=null;
|
|
|
+ try {
|
|
|
+ num = clazz.cast(obj);
|
|
|
+ } catch (Exception e1) {
|
|
|
+ throw new RuntimeException("数字解析异常");
|
|
|
+ }
|
|
|
+ if(num.longValue()<min){
|
|
|
+ throw new RuntimeException("最小值应为"+min);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public static void main(String[] args) {
|
|
|
+ Map<String,Object> map = JSON.parseObject("{'KEY1':'033','KEY2':5}", Map.class);
|
|
|
+ range(map.get("KEY1"), 0, Integer.class);
|
|
|
+ }
|
|
|
|
|
|
}
|