[bug修复] JsonUtil.toBean泛型数组类型丢失

This commit is contained in:
winlans
2025-02-27 11:45:51 +08:00
parent bd94c09e91
commit 732bea6d0b
4 changed files with 76 additions and 6 deletions

View File

@@ -4,8 +4,12 @@ import java.lang.reflect.Method;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;
import cn.hutool.core.lang.TypeReference;
import lombok.Data;
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
public class TypeUtilTest {
@@ -97,4 +101,29 @@ public class TypeUtilTest {
private T level;
}
/**
* fix github:issue#3873
*/
@Test
public void getActualTypeForGenericArrayTest() {
TypeReference<GenericArray<GenericArrayEle>> typeReference = new TypeReference<GenericArray<GenericArrayEle>>() {
};
Type levelType = TypeUtil.getFieldType(GenericArray.class, "level");
Type actualType = TypeUtil.getActualType(typeReference.getType(), levelType);
assertEquals(ArrayUtil.getArrayType(GenericArrayEle.class), actualType);
}
@Data
public static class GenericArray<T> {
private T[] level;
}
@Data
public static class GenericArrayEle {
private Long uid;
}
}