Browse Source

improve: use getObjectMapper().getTypeFactory().constructType insteadof TypeReference (#6041)

improve: use getObjectMapper().getTypeFactory().constructType insteadof TypeReference
VampireAchao 1 year ago
parent
commit
8918feaf4c

+ 1 - 8
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/handlers/JacksonTypeHandler.java

@@ -17,7 +17,6 @@ package com.baomidou.mybatisplus.extension.handlers;
 
 import com.baomidou.mybatisplus.core.toolkit.Assert;
 import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import org.apache.ibatis.type.JdbcType;
 import org.apache.ibatis.type.MappedJdbcTypes;
@@ -25,7 +24,6 @@ import org.apache.ibatis.type.MappedTypes;
 
 import java.io.IOException;
 import java.lang.reflect.Field;
-import java.lang.reflect.Type;
 
 /**
  * Jackson 实现 JSON 字段类型处理器
@@ -51,12 +49,7 @@ public class JacksonTypeHandler extends AbstractJsonTypeHandler<Object> {
     @Override
     public Object parse(String json) {
         try {
-            return getObjectMapper().readValue(json, new TypeReference<Object>() {
-                @Override
-                public Type getType() {
-                    return getFieldType();
-                }
-            });
+            return getObjectMapper().readValue(json, getObjectMapper().getTypeFactory().constructType(getFieldType()));
         } catch (IOException e) {
             throw new RuntimeException(e);
         }