java – JAXB – 解组多态对象

前端之家收集整理的这篇文章主要介绍了java – JAXB – 解组多态对象前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我给了看起来像的XML(当然还有很多属性):

有十几种不同的种类.我正在使用注释来映射到看起来像这样的java类:

@XmlRootElement(name="inventory")
public class Inventory {
  @XmlElement(name="item")
  public List

如何让JAXB根据“kind”字段创建子类Item对象?

最佳答案
有几种不同的方法

JAXB(JSR-222)

以下方法适用于任何JAXB实现(Metro,MOXy,JaxMe等).使用XmlAdapter,其中适配对象包含父类和所有子类的属性.在XmlAdapter中添加应该使用特定子类的逻辑.有关示例,请参阅以下类似问题的链接

> Java/JAXB: Unmarshall XML attributes to specific Java object attributes

EclipseLink JAXB(MOXy)

您可以使用EclipseLink JAXB (MOXy)中的@XmlDescriminatorNode扩展来处理此用例.

看看我对类似问题的回答:

> Java/JAXB: Unmarshall Xml to specific subclass based on an attribute

我们在EclipseLink 2.2版本中改进了这种支持

> http://bdoughan.blogspot.com/2010/11/jaxb-and-inheritance-moxy-extension.html

猜你在找的Java相关文章