jackson 的 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
已被弃用。用什么代替它?
最佳答案
TypeFactory 本身并没有被弃用,只是静态方法;像“constructType”这样的实例方法是可用的。所以问题是您从哪里获得要使用的 TypeFactory 实例。
大多数情况下,您使用 getTypeFactory
方法从 ObjectMapper
获取实例;或来自 SerializationConfig
/DeserializationConfig
。他们随身携带一个实例。
如果这些都不起作用,您还可以使用 TypeFactory.instance
。
弃用的原因是一些扩展模块想要替换标准工厂:具体来说,Scala 模块需要使用 Scala Collection(等)类型扩展类型处理——默认情况下这些不会工作,因为 Scala 不扩展java.util 版本。
关于java - Jackson TypeFactory 静态方法已弃用使用什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8133725/