|
@@ -17,8 +17,9 @@ import com.alibaba.fastjson.JSON;
|
|
|
/**
|
|
|
*
|
|
|
* @author ylx
|
|
|
- * @describe 针对hibernate-validator的实体类进行数据校验的工具类
|
|
|
- * @describe 针对该项目中其它各类数据校验的工具类
|
|
|
+ * @describe: 针对hibernate-validator的实体类进行数据校验的工具类
|
|
|
+ * @describe: 针对该项目中其它各类数据校验的工具类
|
|
|
+ * @Date: 2017-12-26
|
|
|
*/
|
|
|
public class ValidationUtil {
|
|
|
|
|
@@ -57,8 +58,12 @@ public class ValidationUtil {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * @Title: range
|
|
|
- * @Description: TODO(针对传入的参数进行校验范围------>Int类型)
|
|
|
+ * @Title: checkRangeOfInt
|
|
|
+ * @Description: 针对传入的参数进行校验--->Integer类型
|
|
|
+ * @Detail: 参数类型虽然是Object,但是要求数据类型是String或者是Integer类型的数据,而且String类型还必须是能被解析成整数的,否则会抛出异常.
|
|
|
+ * 而且还要限定数值的范围,超出范围的也会报异常.
|
|
|
+ * 如果一切都解析正常,返回一个true的布尔类型
|
|
|
+ * @Usage: 适用于数据判断的校验
|
|
|
* @return boolean
|
|
|
* @author ylx
|
|
|
* @date 2017年12月26日 下午3:48:40
|
|
@@ -98,23 +103,60 @@ public class ValidationUtil {
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * @Title: checkMinOfInt
|
|
|
+ * @Description: 针对传入的参数进行校验--->Integer类型
|
|
|
+ * @Detail: 参数类型虽然是Object,但是要求数据类型是String或者是Integer类型的数据,而且String类型还必须是能被解析成整数的,否则会抛出异常.
|
|
|
+ * 而且还要限定数值的最小值,小于最小值的也会报异常.
|
|
|
+ * 如果一切都解析正常,返回一个true的布尔类型
|
|
|
+ * @Usage: 适用于数据判断的校验
|
|
|
+ * @return boolean
|
|
|
+ * @author ylx
|
|
|
+ * @date 2017年12月26日 下午3:48:40
|
|
|
+ */
|
|
|
public static boolean checkMinOfInt(final Object obj, int min) {
|
|
|
return checkRangeOfInt(obj, min, Integer.MAX_VALUE);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * @Title: checkMaxOfInt
|
|
|
+ * @Description: 针对传入的参数进行校验--->Integer类型
|
|
|
+ * @Detail: 参数类型虽然是Object,但是要求数据类型是String或者是Integer类型的数据,而且String类型还必须是能被解析成整数的,否则会抛出异常.
|
|
|
+ * 而且还要限定数值的最大值,大于最大值的也会报异常.
|
|
|
+ * 如果一切都解析正常,返回一个true的布尔类型
|
|
|
+ * @Usage: 适用于数据判断的校验
|
|
|
+ * @return boolean
|
|
|
+ * @author ylx
|
|
|
+ * @date 2017年12月26日 下午3:48:40
|
|
|
+ */
|
|
|
public static boolean checkMaxOfInt(final Object obj, int max) {
|
|
|
return checkRangeOfInt(obj, Integer.MIN_VALUE, max);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * @Title: checkOfInt
|
|
|
+ * @Description: 针对传入的参数进行校验--->Integer类型
|
|
|
+ * @Detail: 参数类型虽然是Object,但是要求数据类型是String或者是Integer类型的数据,而且String类型还必须是能被解析成整数的,否则会抛出异常.
|
|
|
+ * 针对整个Integer范围内的数据校验(也就是能被解析成Integer的String还是Integer就能校验成功返回true)
|
|
|
+ * 如果一切都解析正常,返回一个true的布尔类型
|
|
|
+ * @Usage: 适用于数据判断的校验
|
|
|
+ * @return boolean
|
|
|
+ * @author ylx
|
|
|
+ * @date 2017年12月26日 下午3:48:40
|
|
|
+ */
|
|
|
public static boolean checkOfInt(final Object obj) {
|
|
|
return checkRangeOfInt(obj, Integer.MIN_VALUE, Integer.MAX_VALUE);
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
- * @Title: range
|
|
|
- * @Description: TODO(针对传入的参数进行校验--->Long类型)
|
|
|
- * @return void
|
|
|
+ * @Title: checkRangeOfLong
|
|
|
+ * @Description: 针对传入的参数进行校验--->Long类型
|
|
|
+ * @Detail: 参数类型虽然是Object,但是要求数据类型是String或者是Long类型的数据,而且String类型还必须是能被解析成整数的,否则会抛出异常.
|
|
|
+ * 而且还要限定数值的范围,超出范围的也会报异常.
|
|
|
+ * 如果一切都解析正常,返回一个true的布尔类型
|
|
|
+ * @Usage: 适用于数据判断的校验
|
|
|
+ * @return boolean
|
|
|
* @author ylx
|
|
|
* @date 2017年12月26日 下午3:48:40
|
|
|
*/
|
|
@@ -139,7 +181,7 @@ public class ValidationUtil {
|
|
|
}
|
|
|
Long num = null;
|
|
|
try {
|
|
|
- num = Long.class.cast(obj);
|
|
|
+ num=Long.parseLong(""+obj);
|
|
|
} catch (Exception e1) {
|
|
|
throw new RuntimeException("数字解析异常");
|
|
|
}
|
|
@@ -152,22 +194,59 @@ public class ValidationUtil {
|
|
|
}
|
|
|
return true;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @Title: checkMinOfLong
|
|
|
+ * @Description: 针对传入的参数进行校验--->Long类型
|
|
|
+ * @Detail: 参数类型虽然是Object,但是要求数据类型是String或者是Long类型的数据,而且String类型还必须是能被解析成整数的,否则会抛出异常.
|
|
|
+ * 而且还要限定数值的最小值,小于最小值的也会报异常.
|
|
|
+ * 如果一切都解析正常,返回一个true的布尔类型
|
|
|
+ * @Usage: 适用于数据判断的校验
|
|
|
+ * @return boolean
|
|
|
+ * @author ylx
|
|
|
+ * @date 2017年12月26日 下午3:48:40
|
|
|
+ */
|
|
|
public static boolean checkMinOfLong(final Object obj, long min) {
|
|
|
return checkRangeOfLong(obj, min, Long.MAX_VALUE);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * @Title: checkMaxOfLong
|
|
|
+ * @Description: 针对传入的参数进行校验--->Long类型
|
|
|
+ * @Detail: 参数类型虽然是Object,但是要求数据类型是String或者是Long类型的数据,而且String类型还必须是能被解析成整数的,否则会抛出异常.
|
|
|
+ * 而且还要限定数值的最大值,大于最大值的也会报异常.
|
|
|
+ * 如果一切都解析正常,返回一个true的布尔类型
|
|
|
+ * @Usage: 适用于数据判断的校验
|
|
|
+ * @return boolean
|
|
|
+ * @author ylx
|
|
|
+ * @date 2017年12月26日 下午3:48:40
|
|
|
+ */
|
|
|
public static boolean checkMaxOfLong(final Object obj, long max) {
|
|
|
return checkRangeOfLong(obj, Long.MIN_VALUE, max);
|
|
|
}
|
|
|
|
|
|
- public static boolean checkOfLong(final Object obj, long max) {
|
|
|
+ /**
|
|
|
+ * @Title: checkOfLong
|
|
|
+ * @Description: 针对传入的参数进行校验--->Long类型
|
|
|
+ * @Detail: 参数类型虽然是Object,但是要求数据类型是String或者是Long类型的数据,而且String类型还必须是能被解析成整数的,否则会抛出异常.
|
|
|
+ * 这个针对Long范围内类型数据的校验
|
|
|
+ * 如果一切都解析正常,返回一个true的布尔类型
|
|
|
+ * @Usage: 适用于数据判断的校验
|
|
|
+ * @return boolean
|
|
|
+ * @author ylx
|
|
|
+ * @date 2017年12月26日 下午3:48:40
|
|
|
+ */
|
|
|
+ public static boolean checkOfLong(final Object obj) {
|
|
|
return checkRangeOfLong(obj, Long.MIN_VALUE, Long.MAX_VALUE);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * @Title: range
|
|
|
- * @Description: TODO(针对传入的参数进行校验--->Int类型,校验和赋值同时进行,同时返回真实的int数值)
|
|
|
+ * @Title: checkRangeAndAssignInt
|
|
|
+ * @Description: 针对传入的参数进行校验--->Integer类型
|
|
|
+ * @Detail: 参数类型虽然是Object,但是要求数据类型是String或者是Integer类型的数据,而且String类型还必须是能被解析成整数的,否则会抛出异常.
|
|
|
+ * 而且还要限定数值的范围,超出范围的也会报异常.
|
|
|
+ * 如果一切都解析正常,说明解析没有问题,结果将解析后的数值以int类型返回
|
|
|
+ * @Usage: 适用于数据判断的校验和赋值同时进行
|
|
|
* @return int
|
|
|
* @author ylx
|
|
|
* @date 2017年12月26日 下午3:48:40
|
|
@@ -207,21 +286,58 @@ public class ValidationUtil {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * @Title: checkMinAndAssignInt
|
|
|
+ * @Description: 针对传入的参数进行校验--->Integer类型
|
|
|
+ * @Detail: 参数类型虽然是Object,但是要求数据类型是String或者是Integer类型的数据,而且String类型还必须是能被解析成整数的,否则会抛出异常.
|
|
|
+ * 而且还要限定数值的最小值,小于最小值的也会报异常.
|
|
|
+ * 如果一切都解析正常,说明解析没有问题,结果将解析后的数值以int类型返回
|
|
|
+ * @Usage: 适用于数据判断的校验和赋值同时进行
|
|
|
+ * @return int
|
|
|
+ * @author ylx
|
|
|
+ * @date 2017年12月26日 下午3:48:40
|
|
|
+ */
|
|
|
public static int checkMinAndAssignInt(final Object obj, int min) {
|
|
|
return checkRangeAndAssignInt(obj,min,Integer.MAX_VALUE);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * @Title: checkMaxAndAssignInt
|
|
|
+ * @Description: 针对传入的参数进行校验--->Integer类型
|
|
|
+ * @Detail: 参数类型虽然是Object,但是要求数据类型是String或者是Integer类型的数据,而且String类型还必须是能被解析成整数的,否则会抛出异常.
|
|
|
+ * 而且还要限定数值的最大值,大于最大值的也会报异常.
|
|
|
+ * 如果一切都解析正常,说明解析没有问题,结果将解析后的数值以int类型返回
|
|
|
+ * @Usage: 适用于数据判断的校验和赋值同时进行
|
|
|
+ * @return int
|
|
|
+ * @author ylx
|
|
|
+ * @date 2017年12月26日 下午3:48:40
|
|
|
+ */
|
|
|
public static int checkMaxAndAssignInt(final Object obj, int max) {
|
|
|
return checkRangeAndAssignInt(obj,Integer.MIN_VALUE,max);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * @Title: checkAndAssignInt
|
|
|
+ * @Description: 针对传入的参数进行校验--->Integer类型
|
|
|
+ * @Detail: 参数类型虽然是Object,但是要求数据类型是String或者是Integer类型的数据,而且String类型还必须是能被解析成整数的,否则会抛出异常.
|
|
|
+ * 这个针对Integer范围内类型数据的校验和赋值
|
|
|
+ * 如果一切都解析正常,说明解析没有问题,结果将解析后的数值以int类型返回
|
|
|
+ * @Usage: 适用于数据判断的校验和赋值同时进行
|
|
|
+ * @return int
|
|
|
+ * @author ylx
|
|
|
+ * @date 2017年12月26日 下午3:48:40
|
|
|
+ */
|
|
|
public static int checkAndAssignInt(final Object obj) {
|
|
|
return checkRangeAndAssignInt(obj,Integer.MIN_VALUE,Integer.MAX_VALUE);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* @Title: range
|
|
|
- * @Description: TODO(针对传入的参数进行校验--->Long类型,校验和赋值同时进行,同时返回真实的long数值)
|
|
|
+ * @Description: 针对传入的参数进行校验--->Long类型
|
|
|
+ * @Detail: 参数类型虽然是Object,但是要求数据类型是String或者是Long类型的数据,而且String类型还必须是能被解析成整数的,否则会抛出异常.
|
|
|
+ * 而且还要限定数值的范围,超出范围的也会报异常.
|
|
|
+ * 如果一切都解析正常,说明解析没有问题,结果将解析后的数值以long类型返回
|
|
|
+ * @Usage: 适用于数据判断的校验和赋值同时进行
|
|
|
* @return long
|
|
|
* @author ylx
|
|
|
* @date 2017年12月26日 下午3:48:40
|
|
@@ -247,7 +363,7 @@ public class ValidationUtil {
|
|
|
}
|
|
|
Long num = null;
|
|
|
try {
|
|
|
- num = Long.class.cast(obj);
|
|
|
+ num=Long.parseLong(""+obj);
|
|
|
} catch (Exception e1) {
|
|
|
throw new RuntimeException("数字解析异常");
|
|
|
}
|
|
@@ -261,21 +377,56 @@ public class ValidationUtil {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * @Title: range
|
|
|
+ * @Description: 针对传入的参数进行校验--->Long类型
|
|
|
+ * @Detail: 参数类型虽然是Object,但是要求数据类型是String或者是Long类型的数据,而且String类型还必须是能被解析成整数的,否则会抛出异常.
|
|
|
+ * 而且还要限定数值的最小值,小于最小值的也会报异常.
|
|
|
+ * 如果一切都解析正常,说明解析没有问题,结果将解析后的数值以long类型返回
|
|
|
+ * @Usage: 适用于数据判断的校验和赋值同时进行
|
|
|
+ * @return long
|
|
|
+ * @author ylx
|
|
|
+ * @date 2017年12月26日 下午3:48:40
|
|
|
+ */
|
|
|
public static long checkMinAndAssignLong(final Object obj, long min) {
|
|
|
return checkRangeAndAssignLong(obj,min,Long.MAX_VALUE);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * @Title: range
|
|
|
+ * @Description: 针对传入的参数进行校验--->Long类型
|
|
|
+ * @Detail: 参数类型虽然是Object,但是要求数据类型是String或者是Long类型的数据,而且String类型还必须是能被解析成整数的,否则会抛出异常.
|
|
|
+ * 而且还要限定数值的最大值,大于最大值的也会报异常.
|
|
|
+ * 如果一切都解析正常,说明解析没有问题,结果将解析后的数值以long类型返回
|
|
|
+ * @Usage: 适用于数据判断的校验和赋值同时进行
|
|
|
+ * @return long
|
|
|
+ * @author ylx
|
|
|
+ * @date 2017年12月26日 下午3:48:40
|
|
|
+ */
|
|
|
public static long checkMaxAndAssignLong(final Object obj, long max) {
|
|
|
return checkRangeAndAssignLong(obj,Long.MIN_VALUE,max);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * @Title: range
|
|
|
+ * @Description: 针对传入的参数进行校验--->Long类型
|
|
|
+ * @Detail: 参数类型虽然是Object,但是要求数据类型是String或者是Long类型的数据,而且String类型还必须是能被解析成整数的,否则会抛出异常.
|
|
|
+ * 这个针对Long范围内类型数据的校验和赋值
|
|
|
+ * 如果一切都解析正常,说明解析没有问题,结果将解析后的数值以long类型返回
|
|
|
+ * @Usage: 适用于数据判断的校验和赋值同时进行
|
|
|
+ * @return long
|
|
|
+ * @author ylx
|
|
|
+ * @date 2017年12月26日 下午3:48:40
|
|
|
+ */
|
|
|
public static long checkAndAssignLong(final Object obj) {
|
|
|
return checkRangeAndAssignLong(obj,Long.MIN_VALUE,Long.MAX_VALUE);
|
|
|
}
|
|
|
/**
|
|
|
* @Title: range
|
|
|
+ * @Target: 针对空(null)
|
|
|
* @Description: TODO(针对传入的参数进行非空(null)校验并返回string数据类型--->只针对String类型,校验和赋值同时进行,同时返回真实的String值)
|
|
|
- * @return long
|
|
|
+ * @Attention: 保证传入的数据是字符串,且不能为空(null),否则报异常,正常就返回一个正常的String类型的参数
|
|
|
+ * @return String
|
|
|
* @author ylx
|
|
|
* @date 2017年12月26日 下午3:48:40
|
|
|
*/
|
|
@@ -298,9 +449,11 @@ public class ValidationUtil {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * @Title: range
|
|
|
+ * @Title: checkEmptyAndAssignString
|
|
|
+ * @Target: 针对空(null)和空字符串("")
|
|
|
* @Description: TODO(针对传入的参数进行非空(null)和空字符串("")校验并返回string数据类型--->只针对String类型,校验和赋值同时进行,同时返回真实的String值)
|
|
|
- * @return long
|
|
|
+ * @Attention: 保证传入的数据是字符串,且不能为空(null)和空字符串(""),否则报异常,正常就返回一个正常的String类型的参数
|
|
|
+ * @return String
|
|
|
* @author ylx
|
|
|
* @date 2017年12月26日 下午3:48:40
|
|
|
*/
|
|
@@ -326,9 +479,11 @@ public class ValidationUtil {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * @Title: range
|
|
|
+ * @Title: checkBlankAndAssignString
|
|
|
+ * @target: 针对空(null)和空字符串("")和空内容的字符串(" ")
|
|
|
* @Description: TODO(针对传入的参数进行非空(null)和空字符串("")和空内容的字符串(" ")校验并返回string数据类型--->只针对String类型,校验和赋值同时进行,同时返回真实的String值)
|
|
|
- * @return long
|
|
|
+ * @Attention: 保证传入的数据是字符串,且不能为空(null)和空字符串("")和空内容的字符串(" "),否则报异常,正常就返回一个正常的String类型的参数
|
|
|
+ * @return String
|
|
|
* @author ylx
|
|
|
* @date 2017年12月26日 下午3:48:40
|
|
|
*/
|
|
@@ -355,9 +510,10 @@ public class ValidationUtil {
|
|
|
|
|
|
|
|
|
/**
|
|
|
- * @Title: range
|
|
|
- * @Description: TODO(针对传入的参数进行非空(null)和空字符串("")和空内容的字符串(" ")校验并返回string数据类型,只要是null,""或" "全部返回null,不会抛出异常,除非无法强转为String,其它情况正常转String)
|
|
|
- * @return long
|
|
|
+ * @Title: checkBlankStringAndAssignNullIfIsBlank
|
|
|
+ * @Description: TODO(针对传入的Object类型参数进行非空(null)和空字符串("")和空内容的字符串(" ")校验并返回string数据类型,只要是null,""或" "全部返回null,不会抛出异常,除非无法强转为String,其它情况正常转String)
|
|
|
+ * @Attention: 默认返回null
|
|
|
+ * @return String
|
|
|
* @author ylx
|
|
|
* @date 2017年12月26日 下午3:48:40
|
|
|
*/
|
|
@@ -377,9 +533,10 @@ public class ValidationUtil {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * @Title: range
|
|
|
+ * @Title: checkBlankStringAndAssignEmptyIfIsBlank
|
|
|
* @Description: TODO(针对传入的参数进行非空(null)和空字符串("")和空内容的字符串(" ")校验并返回string数据类型,只要是null,""或" "全部返回""空串,不会抛出异常,除非无法强转为String,其它情况正常转String)
|
|
|
- * @return long
|
|
|
+ * @Attention: 默认返回""
|
|
|
+ * @return String
|
|
|
* @author ylx
|
|
|
* @date 2017年12月26日 下午3:48:40
|
|
|
*/
|
|
@@ -401,7 +558,8 @@ public class ValidationUtil {
|
|
|
/**
|
|
|
*
|
|
|
* @Title: checkAndAssignDefaultInt
|
|
|
- * @Description: TODO(如果校验的Object不能转换Int则抛出异常,如果是null,空字符串或者是长空串,统一返回默认的值)
|
|
|
+ * @Description: TODO(如果校验的Object不能转换Integer则抛出异常,如果是null,空字符串或者是长空串,统一返回用户指定的默认值defaultInt)
|
|
|
+ * @Attention: obj为null,空字符串""或者是长空串" "都不会抛异常,而是直接返回默认值
|
|
|
* @return int 返回类型
|
|
|
* @author ylx
|
|
|
* @date 2017年12月27日 下午1:51:43
|
|
@@ -429,7 +587,7 @@ public class ValidationUtil {
|
|
|
try {
|
|
|
num = Integer.class.cast(obj);
|
|
|
} catch (Exception e1) {
|
|
|
- throw new RuntimeException("数字解析异常");
|
|
|
+ throw new RuntimeException("Integer强转异常");
|
|
|
}
|
|
|
return num;
|
|
|
}
|
|
@@ -439,8 +597,9 @@ public class ValidationUtil {
|
|
|
/**
|
|
|
*
|
|
|
* @Title: checkAndAssignDefaultLong
|
|
|
- * @Description: TODO(如果校验的Object不能转换Long则抛出异常,如果是null,空字符串或者是长空串,统一返回默认的值)
|
|
|
- * @Attention: 这里要特别注意以下,如果前端传过来的数据是小于Integer.MAX_VALUE的话,必须要加L来将数据强制转化为Long类型,不然解析失败
|
|
|
+ * @Description: TODO(如果校验的Object不能转换Long则抛出异常,如果是null,空字符串或者是长空串,统一返回用户指定的默认值defaultLong)
|
|
|
+ * @Attention: obj为null,空字符串""或者是长空串" "都不会抛异常,而是直接返回默认值
|
|
|
+ * @Solved: 这里要特别注意下,Long.class.cast(obj)当obj是Integer时会出现异常,包装类不能像基本类型一样强转,所以这里改成num=Long.parseLong(""+obj);
|
|
|
* @return long 返回类型
|
|
|
* @author ylx
|
|
|
* @date 2017年12月27日 下午1:51:43
|
|
@@ -468,14 +627,14 @@ public class ValidationUtil {
|
|
|
try {
|
|
|
num=Long.parseLong(""+obj);
|
|
|
} catch (Exception e1) {
|
|
|
- throw new RuntimeException("数字解析异常");
|
|
|
+ throw new RuntimeException("Long解析异常");
|
|
|
}
|
|
|
return num;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
- public static void main(String[] args) {
|
|
|
+ /*public static void main(String[] args) {
|
|
|
String json="{'KEY1':'12','KEY2':23,'KEY3':null}";
|
|
|
Map parseObject = JSON.parseObject(json, Map.class);
|
|
|
Object obj=20000000;
|
|
@@ -484,6 +643,6 @@ public class ValidationUtil {
|
|
|
// Long.class.cast(obj
|
|
|
// Long cast = Long.class.cast(1L);
|
|
|
// System.out.println(checkAndAssignDefaultLong);
|
|
|
- }
|
|
|
+ }*/
|
|
|
|
|
|
}
|