Java带默认值的反序列化,特别是方法反射调用的时候参数不能为空,避免出现空指针异常
本文连接:https://www.cnblogs.com/muphy/p/15242173.html
private Object parseObject(Class<?> paramType, String value) { if (Integer.class == paramType || int.class == paramType) { if (StringUtils.isEmpty(value)) { return 0; } return Integer.valueOf(value); } if (Long.class == paramType || long.class == paramType) { if (StringUtils.isEmpty(value)) { return 0; } return Long.valueOf(value); } if (Double.class == paramType || double.class == paramType) { if (StringUtils.isEmpty(value)) { return 0.0; } return Double.valueOf(value); } if (Float.class == paramType || float.class == paramType) { if (StringUtils.isEmpty(value)) { return 0.0f; } return Float.valueOf(value); } if (Character.class == paramType || char.class == paramType) { if (StringUtils.isEmpty(value)) { return 0; } return value.charAt(0); } if (String.class == paramType) { if (StringUtils.isEmpty(value)) { return ""; } return value; } if (Collection.class.isAssignableFrom(paramType) || paramType.isArray()) { if (StringUtils.isEmpty(value)) { value = "[]"; } } if (Map.class.isAssignableFrom(paramType)) { if (StringUtils.isEmpty(value)) { value = "{}"; } } value = "{}"; return com.alibaba.fastjson.JSON.parseObject(value, paramType); }