mirror of
https://gitee.com/dromara/hutool.git
synced 2025-04-05 17:37:59 +08:00
修复JsonUtil.toBean
泛型数组类型丢失问题(pr#3876@Github)
This commit is contained in:
parent
bb0eb91087
commit
9b19bf84a8
hutool-core/src
main/java/org/dromara/hutool/core/reflect
test/java/org/dromara/hutool/core/reflect
hutool-json/src/test/java/org/dromara/hutool/json/issues
@ -418,7 +418,7 @@ public class TypeUtil {
|
||||
* 2. 泛型变量,类似于T
|
||||
* </pre>
|
||||
*
|
||||
* @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;
|
||||
}
|
||||
}
|
||||
|
||||
// 没有需要替换的泛型变量,原样输出
|
||||
|
@ -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
|
||||
|
@ -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());
|
||||
|
Loading…
Reference in New Issue
Block a user