diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/reflect/TypeUtil.java b/hutool-core/src/main/java/org/dromara/hutool/core/reflect/TypeUtil.java index 5d4e20587..4ec07ba0d 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/reflect/TypeUtil.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/reflect/TypeUtil.java @@ -418,7 +418,7 @@ public class TypeUtil { * 2. 泛型变量,类似于T * * - * @param type 类 + * @param type 泛型类 * @param typeVariable 泛型变量,例如T等 * @return 实际类型,可能为Class等 */ @@ -431,7 +431,10 @@ public class TypeUtil { } // pr#3876 解决泛型数组泛型类型无法识别问题 if (typeVariable instanceof GenericArrayType) { - return ActualTypeMapperPool.getActualType(type, (GenericArrayType) typeVariable); + final Type actualType = ActualTypeMapperPool.getActualType(type, (GenericArrayType) typeVariable); + if(null != actualType){ + return actualType; + } } // 没有需要替换的泛型变量,原样输出 diff --git a/hutool-core/src/test/java/org/dromara/hutool/core/reflect/ClassUtilTest.java b/hutool-core/src/test/java/org/dromara/hutool/core/reflect/ClassUtilTest.java index 44bd340bf..11ea7bea5 100644 --- a/hutool-core/src/test/java/org/dromara/hutool/core/reflect/ClassUtilTest.java +++ b/hutool-core/src/test/java/org/dromara/hutool/core/reflect/ClassUtilTest.java @@ -30,6 +30,11 @@ import java.util.Objects; */ class ClassUtilTest { + @Test + void forNameTest() { + Assertions.assertEquals(String.class, ClassUtil.forName("java.lang.String", false, null)); + } + @Test void testGetSuperClasses() { // if root is null diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3504Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3504Test.java index b2655d36e..07cf04722 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3504Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/issues/Issue3504Test.java @@ -42,6 +42,8 @@ public class Issue3504Test { jsonBean.setClasses(new Class[]{String.class}); final String jsonStr = JSONUtil.toJsonStr(jsonBean); + Assertions.assertEquals("{\"name\":\"test\",\"classes\":[\"java.lang.String\"]}", jsonStr); + final JsonBean bean = JSONUtil.toBean(jsonStr, JsonBean.class); Assertions.assertNotNull(bean); Assertions.assertEquals("test", bean.getName());