123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648 |
- package com.fuzamei.utils;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Map;
- import java.util.Set;
- import javax.validation.ConstraintViolation;
- import javax.validation.Validation;
- import javax.validation.Validator;
- import javax.validation.ValidatorFactory;
- import org.springframework.util.StringUtils;
- import com.alibaba.fastjson.JSON;
- /**
- *
- * @author ylx
- * @describe: 针对hibernate-validator的实体类进行数据校验的工具类
- * @describe: 针对该项目中其它各类数据校验的工具类
- * @Date: 2017-12-26
- */
- public class ValidationUtil {
- private ValidationUtil() {
- throw new AssertionError("不能实例化 ValidationUtil");
- }
- /**
- * @Title: validate
- * @Description: TODO(仅针对校验一个实体类的所有校验失败信息)
- * @return List<String> 返回的是数据校验的所有校验失败信息,封装在一个list中作为返回值
- * @author ylx
- * @date 2017年12月26日 下午3:48:40
- */
- public static <T> List<String> validate(T bo) {
- ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
- Validator validator = factory.getValidator();
- Set<ConstraintViolation<T>> validateSet = validator.validate(bo);
- List<String> list = new ArrayList<String>();
- for (ConstraintViolation<T> validate : validateSet) {
- list.add(validate.getMessage());
- }
- return list; // 包含所有校验出错的信息
- /*
- * 使用hibernate validator出现上面的错误, 需要 注意
- *
- * @NotNull 和 @NotEmpty 和@NotBlank 区别
- *
- * @NotEmpty 用在集合类上面
- *
- * @NotBlank 用在String上面
- *
- * @NotNull 用在基本类型上
- */
- }
- /**
- * @Title: checkRangeOfInt
- * @Description: 针对传入的参数进行校验--->Integer类型
- * @Detail: 参数类型虽然是Object,但是要求数据类型是String或者是Integer类型的数据,而且String类型还必须是能被解析成整数的,否则会抛出异常.
- * 而且还要限定数值的范围,超出范围的也会报异常.
- * 如果一切都解析正常,返回一个true的布尔类型
- * @Usage: 适用于数据判断的校验
- * @return boolean
- * @author ylx
- * @date 2017年12月26日 下午3:48:40
- */
- public static boolean checkRangeOfInt(final Object obj, int min, int max) {
- String number = null;
- try {
- if (obj == null) {
- throw new NullPointerException();
- }
- number = String.class.cast(obj);
- try {
- Integer.parseInt(number);
- } catch (NumberFormatException e) {
- throw new NumberFormatException();
- }
- } catch (Exception e) {
- if (e instanceof NullPointerException) {
- throw new NullPointerException("对象为null");
- }
- if (e instanceof NumberFormatException) {
- throw new RuntimeException("数据类型解析异常");
- }
- Integer num = null;
- try {
- num = Integer.class.cast(obj);
- } catch (Exception e1) {
- throw new RuntimeException("数字解析异常");
- }
- if (num < min) {
- throw new RuntimeException("最小值应该大于等于"+min);
- }
- if(num > max){
- throw new RuntimeException("最大值应该小于等于"+max);
- }
- }
- 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: checkRangeOfLong
- * @Description: 针对传入的参数进行校验--->Long类型
- * @Detail: 参数类型虽然是Object,但是要求数据类型是String或者是Long类型的数据,而且String类型还必须是能被解析成整数的,否则会抛出异常.
- * 而且还要限定数值的范围,超出范围的也会报异常.
- * 如果一切都解析正常,返回一个true的布尔类型
- * @Usage: 适用于数据判断的校验
- * @return boolean
- * @author ylx
- * @date 2017年12月26日 下午3:48:40
- */
- public static boolean checkRangeOfLong(final Object obj, long min, long max) {
- String number = null;
- try {
- if (obj == null) {
- throw new NullPointerException();
- }
- number = String.class.cast(obj);
- try {
- Long.parseLong(number);
- } catch (NumberFormatException e) {
- throw new NumberFormatException();
- }
- } catch (Exception e) {
- if (e instanceof NullPointerException) {
- throw new NullPointerException("对象为null");
- }
- if (e instanceof NumberFormatException) {
- throw new RuntimeException("数据类型解析异常");
- }
- Long num = null;
- try {
- num=Long.parseLong(""+obj);
- } catch (Exception e1) {
- throw new RuntimeException("数字解析异常");
- }
- if (num < min) {
- throw new RuntimeException("最小值应该大于等于"+min);
- }
- if(num > max){
- throw new RuntimeException("最大值应该小于等于"+max);
- }
- }
- 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);
- }
-
- /**
- * @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: checkRangeAndAssignInt
- * @Description: 针对传入的参数进行校验--->Integer类型
- * @Detail: 参数类型虽然是Object,但是要求数据类型是String或者是Integer类型的数据,而且String类型还必须是能被解析成整数的,否则会抛出异常.
- * 而且还要限定数值的范围,超出范围的也会报异常.
- * 如果一切都解析正常,说明解析没有问题,结果将解析后的数值以int类型返回
- * @Usage: 适用于数据判断的校验和赋值同时进行
- * @return int
- * @author ylx
- * @date 2017年12月26日 下午3:48:40
- */
- public static int checkRangeAndAssignInt(final Object obj, int min, int max) {
- String number = null;
- try {
- if (obj == null) {
- throw new NullPointerException();
- }
- number = String.class.cast(obj);
- try {
- return Integer.parseInt(number);
- } catch (NumberFormatException e) {
- throw new NumberFormatException();
- }
- } catch (Exception e) {
- if (e instanceof NullPointerException) {
- throw new NullPointerException("对象为null");
- }
- if (e instanceof NumberFormatException) {
- throw new RuntimeException("数据类型解析异常");
- }
- Integer num = null;
- try {
- num = Integer.class.cast(obj);
- } catch (Exception e1) {
- throw new RuntimeException("数字解析异常");
- }
- if (num < min) {
- throw new RuntimeException("最小值应该大于等于"+min);
- }
- if(num > max){
- throw new RuntimeException("最大值应该小于等于"+max);
- }
- return num;
- }
- }
- /**
- * @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: 针对传入的参数进行校验--->Long类型
- * @Detail: 参数类型虽然是Object,但是要求数据类型是String或者是Long类型的数据,而且String类型还必须是能被解析成整数的,否则会抛出异常.
- * 而且还要限定数值的范围,超出范围的也会报异常.
- * 如果一切都解析正常,说明解析没有问题,结果将解析后的数值以long类型返回
- * @Usage: 适用于数据判断的校验和赋值同时进行
- * @return long
- * @author ylx
- * @date 2017年12月26日 下午3:48:40
- */
- public static long checkRangeAndAssignLong(final Object obj, long min, long max) {
- String number = null;
- try {
- if (obj == null) {
- throw new NullPointerException();
- }
- number = String.class.cast(obj);
- try {
- return Long.parseLong(number);
- } catch (NumberFormatException e) {
- throw new NumberFormatException();
- }
- } catch (Exception e) {
- if (e instanceof NullPointerException) {
- throw new NullPointerException("对象为null");
- }
- if (e instanceof NumberFormatException) {
- throw new RuntimeException("数据类型解析异常");
- }
- Long num = null;
- try {
- num=Long.parseLong(""+obj);
- } catch (Exception e1) {
- throw new RuntimeException("数字解析异常");
- }
- if (num < min) {
- throw new RuntimeException("最小值应该大于等于"+min);
- }
- if(num > max){
- throw new RuntimeException("最大值应该小于等于"+max);
- }
- return num;
- }
- }
-
- /**
- * @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值)
- * @Attention: 保证传入的数据是字符串,且不能为空(null),否则报异常,正常就返回一个正常的String类型的参数
- * @return String
- * @author ylx
- * @date 2017年12月26日 下午3:48:40
- */
- public static String checkNullAndAssignString(final Object obj){
- try {
- if (obj == null) {
- throw new NullPointerException();
- }
- String str=String.class.cast(obj);
- return str;
- } catch (Exception e) {
- if(e instanceof NullPointerException){
- throw new NullPointerException("对象为null");
- }
- if(e instanceof ClassCastException){
- throw new ClassCastException("强转String类型异常");
- }
- throw new RuntimeException();
- }
- }
-
- /**
- * @Title: checkEmptyAndAssignString
- * @Target: 针对空(null)和空字符串("")
- * @Description: TODO(针对传入的参数进行非空(null)和空字符串("")校验并返回string数据类型--->只针对String类型,校验和赋值同时进行,同时返回真实的String值)
- * @Attention: 保证传入的数据是字符串,且不能为空(null)和空字符串(""),否则报异常,正常就返回一个正常的String类型的参数
- * @return String
- * @author ylx
- * @date 2017年12月26日 下午3:48:40
- */
- public static String checkEmptyAndAssignString(final Object obj){
- try {
- if (obj == null) {
- throw new NullPointerException();
- }
- String str=String.class.cast(obj);
- if("".equals(str)){
- throw new RuntimeException("字符串不能为空");
- }
- return str;
- } catch (Exception e) {
- if(e instanceof NullPointerException){
- throw new NullPointerException("对象为null");
- }
- if(e instanceof ClassCastException){
- throw new ClassCastException("强转String类型异常");
- }
- throw new RuntimeException(e.getMessage());
- }
- }
-
- /**
- * @Title: checkBlankAndAssignString
- * @target: 针对空(null)和空字符串("")和空内容的字符串(" ")
- * @Description: TODO(针对传入的参数进行非空(null)和空字符串("")和空内容的字符串(" ")校验并返回string数据类型--->只针对String类型,校验和赋值同时进行,同时返回真实的String值)
- * @Attention: 保证传入的数据是字符串,且不能为空(null)和空字符串("")和空内容的字符串(" "),否则报异常,正常就返回一个正常的String类型的参数
- * @return String
- * @author ylx
- * @date 2017年12月26日 下午3:48:40
- */
- public static String checkBlankAndAssignString(final Object obj){
- try {
- if (obj == null) {
- throw new NullPointerException();
- }
- String str=String.class.cast(obj);
- if("".equals(str.trim())){
- throw new RuntimeException("字符串不能无任何内容");
- }
- return str;
- } catch (Exception e) {
- if(e instanceof NullPointerException){
- throw new NullPointerException("对象为null");
- }
- if(e instanceof ClassCastException){
- throw new ClassCastException("强转String类型异常");
- }
- throw new RuntimeException(e.getMessage());
- }
- }
-
-
- /**
- * @Title: checkBlankStringAndAssignNullIfIsBlank
- * @Description: TODO(针对传入的Object类型参数进行非空(null)和空字符串("")和空内容的字符串(" ")校验并返回string数据类型,只要是null,""或" "全部返回null,不会抛出异常,除非无法强转为String,其它情况正常转String)
- * @Attention: 默认返回null
- * @return String
- * @author ylx
- * @date 2017年12月26日 下午3:48:40
- */
- public static String checkBlankStringAndAssignNullIfIsBlank(final Object obj){
- try {
- if (obj == null) {
- return null;
- }
- String str=String.class.cast(obj);
- if("".equals(str.trim())){
- return null;
- }
- return str;
- } catch (Exception e) {
- throw new RuntimeException("String类型转换异常");
- }
- }
-
- /**
- * @Title: checkBlankStringAndAssignEmptyIfIsBlank
- * @Description: TODO(针对传入的参数进行非空(null)和空字符串("")和空内容的字符串(" ")校验并返回string数据类型,只要是null,""或" "全部返回""空串,不会抛出异常,除非无法强转为String,其它情况正常转String)
- * @Attention: 默认返回""
- * @return String
- * @author ylx
- * @date 2017年12月26日 下午3:48:40
- */
- public static String checkBlankStringAndAssignEmptyIfIsBlank(final Object obj){
- try {
- if (obj == null) {
- return "";
- }
- String str=String.class.cast(obj);
- if("".equals(str.trim())){
- return "";
- }
- return str;
- } catch (Exception e) {
- throw new RuntimeException("String类型转换异常");
- }
- }
-
- /**
- *
- * @Title: checkAndAssignDefaultInt
- * @Description: TODO(如果校验的Object不能转换Integer则抛出异常,如果是null,空字符串或者是长空串,统一返回用户指定的默认值defaultInt)
- * @Attention: obj为null,空字符串""或者是长空串" "都不会抛异常,而是直接返回默认值
- * @return int 返回类型
- * @author ylx
- * @date 2017年12月27日 下午1:51:43
- */
- public static int checkAndAssignDefaultInt(final Object obj,int defaultInt){
- String number = null;
- try {
- if (obj == null) {
- return defaultInt;
- }
- number = String.class.cast(obj);
- if("".equals(number.trim())){
- return defaultInt;
- }
- try {
- return Integer.parseInt(number);
- } catch (NumberFormatException e) {
- throw new NumberFormatException();
- }
- } catch (Exception e) {
- if (e instanceof NumberFormatException) {
- throw new RuntimeException("数据类型解析异常");
- }
- Integer num = null;
- try {
- num = Integer.class.cast(obj);
- } catch (Exception e1) {
- throw new RuntimeException("Integer强转异常");
- }
- return num;
- }
- }
-
-
- /**
- *
- * @Title: checkAndAssignDefaultLong
- * @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
- */
- public static long checkAndAssignDefaultLong(final Object obj,long defaultLong){
- String number = null;
- try {
- if (obj == null) {
- return defaultLong;
- }
- number = String.class.cast(obj);
- if("".equals(number.trim())){
- return defaultLong;
- }
- try {
- return Long.parseLong(number);
- } catch (NumberFormatException e) {
- throw new NumberFormatException();
- }
- } catch (Exception e) {
- if (e instanceof NumberFormatException) {
- throw new RuntimeException("数据类型解析异常");
- }
- Long num = null;
- try {
- num=Long.parseLong(""+obj);
- } catch (Exception e1) {
- throw new RuntimeException("Long解析异常");
- }
- return num;
- }
- }
-
- /*public static void main(String[] args) {
- String json="{'KEY1':'12','KEY2':23,'KEY3':null}";
- Map parseObject = JSON.parseObject(json, Map.class);
- Object obj=20000000;
- long checkAndAssignDefaultLong = checkAndAssignDefaultLong(obj,1000);
- System.out.println(checkAndAssignDefaultLong);
- // Long.class.cast(obj
- // Long cast = Long.class.cast(1L);
- // System.out.println(checkAndAssignDefaultLong);
- }*/
- }
|