我有一个看起来像这样的课程
public class Converter<T> {
public T convert(String json) throws IOException {
ObjectMapper mapper = new ObjectMapper();
return mapper.readValue(json, new TypeReference<T>(){});
}
}
我像这样调用转换方法
public static void main(String[] args) throws IOException {
Converter<MyJsonObject> converter = new Converter<>();
MyJsonObject json = converter.convert("{\"id\" : 123}");
}
当我运行它时,我收到错误: 线程“main”中的异常java.lang.ClassCastException:java.util.LinkedHashMap无法强制转换为MyJsonObject
事实证明,即使我在转换器构造期间指定了MyJsonObject,convert()方法也会返回LinkedHashMap而不是MyJsonObject。
如果可能,我想避免这种解决方案。
public class Converter {
public <T> T convert(String json, TypeReference ref) throws IOException {
ObjectMapper mapper = new ObjectMapper();
return mapper.readValue(json, ref);
}
}
任何帮助都将不胜感激。