【发布时间】:2014-02-16 11:14:48
【问题描述】:
我有以下对象结构:
public class Animal<T> implements IMakeSound<T>
public class Dog<T> extends Animal<T>
public class Cat<T> extends Animal<T>
我想使用 jackson 序列化和反序列化我的对象。
问题是,在 Json 中,我在 T 中获得了 LinkedHashmap,而反序列化是针对基础对象 Animal。
当我向 T 添加限制时,由于 Jackson 注释,它可以完美地工作
@JsonSubTypes({
@Type(value = PuffyTail.class, name = "puffyTail"),
@Type(value = StraightTail.class, name = "straightTail") })
class Tail {
...
但这不是我想要的行为 - 我不使用 。
有没有办法使用 java 泛型并获得正确的序列化对象?
有没有办法在没有注释的情况下完成它?
【问题讨论】:
-
因为泛型在编译时类型被擦除,所以您需要向 Jackson 提供有关如何创建泛型类型的提示。
标签: java generics serialization jackson