我正在将java版本中的jackson库从版本2.4.6升级到最新版本(2.8.1)。 以下AnnotatedField构造函数现在需要一个TypeResolutionContext类型的新参数
// v2.4.6
AnnotatedField(Field field, AnnotationMap annMap)
// v2.8.1
AnnotatedField(TypeResolutionContext contextClass, Field field, AnnotationMap annMap)
我阅读了API(https://fasterxml.github.io/jackson-databind/javadoc/2.8/com/fasterxml/jackson/databind/introspect/TypeResolutionContext.html)但无法找到如何获取此TypeResolutionContext。
只有2个类实现了这个TypeResolutionContext(AnnotatedClass和TypeResolutionContext.Basic),但它们似乎都没有合适的访问器方法返回TypeResolutionContext。
任何人都知道我怎么能得到它?
答案 0 :(得分:0)
AnnotatedField
构造函数虽然是公共的,但不应该直接使用 - 它不是为了实例化而设计的。因此,TypeResolutionContext
参数在大多数情况下如果实现为空则可以正常工作,如下所示:
// lambda use to be more explicit (could be just null)
AnnotatedField annotatedField = new AnnotatedField( ( Type t) -> { return null; }, field, annMap);
(+ info有点偏离主题:PropertyNamingStrategy
也不应该在jackson项目之外使用。)
来源:https://groups.google.com/forum/#!topic/jackson-user/96wemvuUCHs