如果我有这个POJO:
class Day {
val meals: MutableList<Meal> = mutableListOf()
lateinit val meal: Meal
}
和
class Meal {
}
如果我尝试转换表示Day
模型的HashMap
map
,如下所示:
val obj = objectMapper.convertValue(map, Day::class.java)
杰克逊只将变量meal
而不是列表转换为膳食。相反,meals
将是一个数组列表HashMap
。
我尝试手动将meals
中的每个哈希映射转换为Meal
对象,并且它起作用了,因此内部的哈希映射可以转换为Meal
并且没有错误。
我想找到的是如何自动做到这一点。
您可以使用以下代码片段作为参考:
extractObjectWithTypeReference(data,new TypeReference<DataListUploadRequest<MakeModelUploadData>>(){});
创建以下泛型方法:
public static <T> T extractObjectWithTypeReference(Object object,TypeReference<?> typeReference) {
return new ObjectMapper().convertValue(object,typeReference);
}
我的班级如下:
public class DataListUploadRequest<T> {
private List<T> dataList;
public List<T> getDataList() {
return dataList;
}
public void setDataList(List<T> dataList) {
this.dataList = dataList;
}
}