杰克逊的Typefactory课程里面有许多弃用的方法。我这样使用它:
public List<T> getX(Class<T> clz) {
ObjectMapper mapper = new ObjectMapper();
try {
String jsonData = mapper.writeValueAsString(data);
a = mapper.readValue(jsonData, TypeFactory.collectionType(List.class, clz));
} catch (Exception e) {
System.out.println(e.getMessage());
}
return a;// a is a global variable
}
它警告我collectionType
已弃用。用什么而不是它?
答案 0 :(得分:13)
TypeFactory本身不被弃用,只是静态方法;像“constructType”这样的实例方法可用。所以问题是你在哪里使用TypeFactory实例。
通常,您使用ObjectMapper
方法从getTypeFactory
获取实例;或来自SerializationConfig
/ DeserializationConfig
。他们携带一个实例。
如果这些都不起作用,那么您可以使用TypeFactory.instance
。
弃用的原因是某些扩展模块需要替换标准工厂:具体来说,Scala模块需要使用Scala Collection(etc)类型扩展类型处理 - 这些在默认情况下不起作用,因为Scala不会扩展java.util版本。