java – 杰克逊多态:如何将多个子类型映射到同一个类
发布时间:2020-05-24 16:39:26 所属栏目:Java 来源:互联网
导读:我正在使用Jackson 1.9.x. 坚持动物的例子,这是我想做的事情: 假设我有一个Animal类: public class Animal { private String type; // accessors}public class Mammal extends Animal { private String diet; // accessors}
|
我正在使用Jackson 1.9.x.
假设我有一个Animal类: public class Animal {
private String type;
// accessors
}
public class Mammal extends Animal {
private String diet;
// accessors
}
public class Bird extends Animal {
private boolean tropical;
// accessors
}
我想要做这样的事情(我将几个子类型映射到一个类,另外一个类别) @JsonTypeInfo(use = Id.NAME,include = As.PROPERTY,property = "type")
@JsonSubTypes({@JsonSubTypes.Type(value = Mammal.class,name = "Dog"),@JsonSubTypes.Type(value = Mammal.class,name = "Cat"),@JsonSubTypes.Type(value = Bird.class,name = "Dodo"},name = "Cockatoo"})
public class Animal {
}
我现在看到的是,杰克逊只会认识到“狗到哺乳动物”和“Dodo-to-Bird”映射.这是因为StdSubtypeResolver._collectAndResolve()只允许同一个类注册一次(由于NamedType.equals()的实现). 有没有解决我看到的问题的解决方法? 解决方法也许不是使用注释.问题来自于这种映射对于序列化不起作用,而现有映射确实需要一对一(双向)关系.但您可能想要在 jackson-databind issue tracker提交RFE;添加支持可能是可能的. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 如何逐步使用Java中的Log4j配置jboss 6.x中的日志记录
- java – Swing BoxLayout问题 – 不能让填充物完成它们的工
- java – “多个标记”是什么意思?
- java – 来自支持v.23.2.0的RecyclerView的dissapearence动
- java – 紧密循环坏了吗?
- 在最新的jdk7中,使用java失败的主机名失败
- java – 如何使用JSF outputStylesheet实现CSS Cache Busti
- 详解springboot读取yml配置的几种方式
- Java运算符,用于检查两个条件是否为false,但不是两个条件都
- 详解Junit 测试之 Spring Test
