obj = pojo.newInstance();
// 首先得到pojo所定义的字段
Field[] fields = pojo.getDeclaredFields();
for (Field curField : fields) {
// 设置字段可访问(必须,否则报错)
curField.setAccessible(true);
Class<?> curFieldType = curField.getType();
// 集合List元素
if (curFieldType.equals(List.class)) {
// 当前集合的泛型类型
Type genericType = curField.getGenericType();
if (null == genericType) {
continue;
}
if (genericType instanceof ParameterizedType) {
ParameterizedType pt = (ParameterizedType) genericType;
// 得到泛型里的class类型对象
Class<?> actualTypeArgument = (Class<?>)pt.getActualTypeArguments()[0];
List<Object> curEleList = new ArrayList<>();
Object actualType = actualTypeArgument.newInstance();
//....actualType字段处理
curEleList.add(actualType);
curField.set(obj, curEleList);
}
}
}
java获取List的泛型
最新推荐文章于 2025-11-11 00:54:18 发布
该博客主要介绍了如何使用Java反射API动态创建并初始化带有泛型的集合对象。通过获取字段的泛型类型,实例化具体类型并添加到集合中,实现对Pojo类字段的填充。
6561

被折叠的 条评论
为什么被折叠?



