java – 杰克逊多态:如何将多个子类型映射到同一个类
发布时间:2020-12-15 00:10:21 所属栏目:Java 来源:网络整理
导读:我正在使用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 Anim
我正在使用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 – Wait.until()与Webdriver PageFactory元素
- android 字体大小 根据分辨率 自动调整
- async-await – Babel ESLint:TypeError:无法读取null的属
- java-ee – GlassFish v3域服务器无法启动.港口被占用
- Java简易计算器程序设计
- java – 为什么UtteranceProgress侦听器没有被调用文本来说
- java – 如何在大(Android)项目中舒适地工作?
- java – 基本类型的瞬态最终和瞬态最终包装类型之间的区别
- Java ClassLoader授权模型?
- JDK8中CharSequence接口源码分析