我正在使用Jackson JSON 库StdDeserializer
制作自定义反序列化器(扩展),但我无法弄清楚构造函数参数的目的是什么。杰克逊是用来做什么的?仅仅是因为 Java 没有具体化的泛型,而 Jackson 需要有关您正在创建实例的泛型类型的更多信息吗?Class<?>
JavaType valueType
问问题
1011 次
1 回答
2
Jackson 将 JSON 结构与 java 类匹配。就像 JAXB 将 java 类映射到 XSD-s 一样。
所以,这个Class<?>
(或 JavaType)定义了哪个 java 类属于这个反序列化器。这些 java 类可以是任何具有正确注解的类,例如@JsonProperty
.
另一个问题:为什么这个类是通用的?之所以如此,是因为[java.lang.Class][1]
它是通用的。如果你想正确地做到这一点,那么你可以像这样指定它:
StdDeserializer serializer = new StdDeserializer(YourClass.class);
关键是StdSerializer
不绑定您可以指定的类。
于 2016-09-09T08:04:59.560 回答