|
@@ -360,6 +360,105 @@ public class ValidationUtil {
|
|
|
return checkRangeAndAssignInt(obj,Integer.MIN_VALUE,Integer.MAX_VALUE);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * @Title: checkRangeAndAssignDouble
|
|
|
+ * @Description: 针对传入的参数进行校验--->Double类型
|
|
|
+ * @Detail: 参数类型虽然是Object,但是要求数据类型是String或者是Double类型的数据,而且String类型还必须是能被解析成double的,否则会抛出异常.
|
|
|
+ * 而且还要限定数值的范围,超出范围的也会报异常.
|
|
|
+ * 如果一切都解析正常,说明解析没有问题,结果将解析后的数值以double类型返回
|
|
|
+ * @Usage: 适用于数据判断的校验和赋值同时进行
|
|
|
+ * @return double
|
|
|
+ * @author ylx
|
|
|
+ * @date 2017年12月26日 下午3:48:40
|
|
|
+ */
|
|
|
+ public static double checkRangeAndAssignDouble(final Object obj, double min, double max) {
|
|
|
+ String number = null;
|
|
|
+ try {
|
|
|
+ if (obj == null) {
|
|
|
+ throw new NullPointerException();
|
|
|
+ }
|
|
|
+ number = String.class.cast(obj);
|
|
|
+ try {
|
|
|
+ Double num = Double.parseDouble(number);
|
|
|
+ if (num < min) {
|
|
|
+ throw new OutOfRangeException("最小值应该大于等于"+min);
|
|
|
+ }
|
|
|
+ if(num > max){
|
|
|
+ throw new OutOfRangeException("最大值应该小于等于"+max);
|
|
|
+ }
|
|
|
+ return num;
|
|
|
+ } catch (NumberFormatException e) {
|
|
|
+ throw new NumberFormatException();
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ if (e instanceof NullPointerException) {
|
|
|
+ throw new NullPointerException("对象为null");
|
|
|
+ }
|
|
|
+ if (e instanceof NumberFormatException) {
|
|
|
+ throw new RuntimeException("数据类型解析异常");
|
|
|
+ }
|
|
|
+ if (e instanceof OutOfRangeException) {
|
|
|
+ throw new OutOfRangeException(e.getMessage());
|
|
|
+ }
|
|
|
+ Double num = null;
|
|
|
+ try {
|
|
|
+ num = Double.parseDouble(String.valueOf(num));
|
|
|
+ } catch (Exception e1) {
|
|
|
+ throw new RuntimeException("数字解析异常");
|
|
|
+ }
|
|
|
+ if (num < min) {
|
|
|
+ throw new RuntimeException("最小值应该大于等于"+min);
|
|
|
+ }
|
|
|
+ if(num > max){
|
|
|
+ throw new RuntimeException("最大值应该小于等于"+max);
|
|
|
+ }
|
|
|
+ return num;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @Title: checkRangeAndAssignDouble
|
|
|
+ * @Description: 针对传入的参数进行校验--->Double类型
|
|
|
+ * @Detail: 参数类型虽然是Object,但是要求数据类型是String或者是Double类型的数据,而且String类型还必须是能被解析成double的,否则会抛出异常.
|
|
|
+ * 而且还要限定数值的最大值,超出最大值的也会报异常.
|
|
|
+ * 如果一切都解析正常,说明解析没有问题,结果将解析后的数值以double类型返回
|
|
|
+ * @Usage: 适用于数据判断的校验和赋值同时进行
|
|
|
+ * @return double
|
|
|
+ * @author ylx
|
|
|
+ * @date 2017年12月26日 下午3:48:40
|
|
|
+ */
|
|
|
+ public static double checkMinAndAssignDouble(final Object obj, double min) {
|
|
|
+ return checkRangeAndAssignDouble(obj,min,Double.MAX_VALUE);
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * @Title: checkRangeAndAssignDouble
|
|
|
+ * @Description: 针对传入的参数进行校验--->Double类型
|
|
|
+ * @Detail: 参数类型虽然是Object,但是要求数据类型是String或者是Double类型的数据,而且String类型还必须是能被解析成double的,否则会抛出异常.
|
|
|
+ * 而且还要限定数值的最大值,超出最大值的也会报异常.
|
|
|
+ * 如果一切都解析正常,说明解析没有问题,结果将解析后的数值以double类型返回
|
|
|
+ * @Usage: 适用于数据判断的校验和赋值同时进行
|
|
|
+ * @return double
|
|
|
+ * @author ylx
|
|
|
+ * @date 2017年12月26日 下午3:48:40
|
|
|
+ */
|
|
|
+ public static double checkMaxAndAssignDouble(final Object obj,double max) {
|
|
|
+ return checkRangeAndAssignDouble(obj,Double.MIN_VALUE,max);
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * @Title: checkRangeAndAssignDouble
|
|
|
+ * @Description: 针对传入的参数进行校验--->Double类型
|
|
|
+ * @Detail: 参数类型虽然是Object,但是要求数据类型是String或者是Double类型的数据,而且String类型还必须是能被解析成double的,否则会抛出异常.
|
|
|
+ * 而且还要限定数值的最大值,超出最大值的也会报异常.
|
|
|
+ * 如果一切都解析正常,说明解析没有问题,结果将解析后的数值以double类型返回
|
|
|
+ * @Usage: 适用于数据判断的校验和赋值同时进行
|
|
|
+ * @return double
|
|
|
+ * @author ylx
|
|
|
+ * @date 2017年12月26日 下午3:48:40
|
|
|
+ */
|
|
|
+ public static double checkAndAssignDouble(final Object obj) {
|
|
|
+ return checkRangeAndAssignDouble(obj,Double.MIN_VALUE,Double.MAX_VALUE);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* @Title: range
|
|
|
* @Description: 针对传入的参数进行校验--->Long类型
|