|
@@ -54,39 +54,43 @@ import lombok.NonNull;
|
|
|
*/
|
|
|
public final class JacksonUtils {
|
|
|
/**
|
|
|
- * JavaScript最大整型数(2的53次方)
|
|
|
+ * 字符串数组类型引用
|
|
|
*/
|
|
|
- private static final long JAVA_SCRIPT_MAX_NUMBER = BigInteger.valueOf(2).pow(53).longValue();
|
|
|
+ public static final TypeReference<String[]> STRING_ARRAY_TYPE = new TypeReference<String[]>() {
|
|
|
+ };
|
|
|
|
|
|
/**
|
|
|
- * JavaScript最大整型数(2的53次方)
|
|
|
+ * 字符串集合类型引用
|
|
|
*/
|
|
|
- private static final BigInteger JAVA_SCRIPT_MAX_INTEGER = BigInteger.valueOf(JAVA_SCRIPT_MAX_NUMBER);
|
|
|
+ public static final TypeReference<Set<String>> STRING_SET_TYPE = new TypeReference<Set<String>>() {
|
|
|
+ };
|
|
|
|
|
|
/**
|
|
|
- * JavaScript最大小数(2的53次方)
|
|
|
+ * 字符串列表类型引用
|
|
|
*/
|
|
|
- private static final BigDecimal JAVA_SCRIPT_MAX_DECIMAL = BigDecimal.valueOf(JAVA_SCRIPT_MAX_NUMBER);
|
|
|
+ public static final TypeReference<List<String>> STRING_LIST_TYPE = new TypeReference<List<String>>() {
|
|
|
+ };
|
|
|
|
|
|
/**
|
|
|
- * Jackson处理基础模块
|
|
|
+ * 字符串键/值映射类型引用
|
|
|
*/
|
|
|
- private static volatile SimpleModule BASE_MODULE;
|
|
|
+ public static final TypeReference<Map<String, String>> STRING_MAP_TYPE = new TypeReference<Map<String, String>>() {
|
|
|
+ };
|
|
|
|
|
|
/**
|
|
|
- * Jackson安全处理模块
|
|
|
+ * JavaScript最大整型数(2的53次方)
|
|
|
*/
|
|
|
- private static volatile SimpleModule SAFETY_MODULE;
|
|
|
+ private static final long JAVA_SCRIPT_MAX_NUMBER = BigInteger.valueOf(2).pow(53).longValue();
|
|
|
|
|
|
/**
|
|
|
- * Jackson数字处理模块
|
|
|
+ * JavaScript最大整型数(2的53次方)
|
|
|
*/
|
|
|
- private static volatile SimpleModule NUMBER_MODULE;
|
|
|
+ private static final BigInteger JAVA_SCRIPT_MAX_INTEGER = BigInteger.valueOf(JAVA_SCRIPT_MAX_NUMBER);
|
|
|
|
|
|
/**
|
|
|
- * Jackson null对象序列化处理器更新处理实现
|
|
|
+ * JavaScript最大小数(2的53次方)
|
|
|
*/
|
|
|
- private static volatile BeanSerializerModifier NULL_MODIFIER;
|
|
|
+ private static final BigDecimal JAVA_SCRIPT_MAX_DECIMAL = BigDecimal.valueOf(JAVA_SCRIPT_MAX_NUMBER);
|
|
|
|
|
|
/**
|
|
|
* 默认对象序列化处理器实例
|
|
@@ -99,28 +103,24 @@ public final class JacksonUtils {
|
|
|
private static final ObjectMapper SAFELY_SERIALIZER = initializeSerializer(true);
|
|
|
|
|
|
/**
|
|
|
- * 字符串数组类型引用
|
|
|
+ * Jackson处理基础模块
|
|
|
*/
|
|
|
- public static final TypeReference<String[]> STRING_ARRAY_TYPE = new TypeReference<String[]>() {
|
|
|
- };
|
|
|
+ private static volatile SimpleModule BASE_MODULE;
|
|
|
|
|
|
/**
|
|
|
- * 字符串集合类型引用
|
|
|
+ * Jackson安全处理模块
|
|
|
*/
|
|
|
- public static final TypeReference<Set<String>> STRING_SET_TYPE = new TypeReference<Set<String>>() {
|
|
|
- };
|
|
|
+ private static volatile SimpleModule SAFETY_MODULE;
|
|
|
|
|
|
/**
|
|
|
- * 字符串列表类型引用
|
|
|
+ * Jackson数字处理模块
|
|
|
*/
|
|
|
- public static final TypeReference<List<String>> STRING_LIST_TYPE = new TypeReference<List<String>>() {
|
|
|
- };
|
|
|
+ private static volatile SimpleModule NUMBER_MODULE;
|
|
|
|
|
|
/**
|
|
|
- * 字符串键/值映射类型引用
|
|
|
+ * Jackson null对象序列化处理器更新处理实现
|
|
|
*/
|
|
|
- public static final TypeReference<Map<String, String>> STRING_MAP_TYPE = new TypeReference<Map<String, String>>() {
|
|
|
- };
|
|
|
+ private static volatile BeanSerializerModifier NULL_MODIFIER;
|
|
|
|
|
|
private JacksonUtils() {
|
|
|
}
|
|
@@ -1229,12 +1229,7 @@ public final class JacksonUtils {
|
|
|
if (map == null) {
|
|
|
return null;
|
|
|
}
|
|
|
- T instance;
|
|
|
- try {
|
|
|
- instance = type.newInstance();
|
|
|
- } catch (ReflectiveOperationException e) {
|
|
|
- throw new RuntimeException(e);
|
|
|
- }
|
|
|
+ T instance = ObjectUtils.instance(type);
|
|
|
if (ObjectUtils.notEmpty(map)) {
|
|
|
Map<String, Field> fields = ObjectUtils.getAllFields(type);
|
|
|
if (ObjectUtils.notEmpty(fields)) {
|