我正在从 Castor 切换到 JAXB2 以在 XML 和 Java 对象之间执行编组/解组。我在尝试配置多态对象集合时遇到问题。
示例 XML
<project name="test project">
<orange name="fruit orange" orangeKey="100" />
<apple name="fruit apple" appleKey="200" />
<orange name="fruit orange again" orangeKey="500" />
</project>
项目类
该oranges
列表工作正常,我在列表中看到 2 个橙子。但是,我不确定如何配置fruitList
. fruitList
应该有 3 个水果:2 个橙子和 1 个苹果。
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Project {
@XmlAttribute
private String name;
@XmlElement(name = "orange")
private List<Orange> oranges = new ArrayList<Orange>();
// Not sure how to configure this... help!
private List<Fruit> fruitList = new ArrayList<Fruit>();
}
水果类
Fruit 是一个抽象类。出于某种原因,将此类定义为抽象似乎会引起很多问题。
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public abstract class Fruit {
@XmlAttribute
private String name;
}
橙类
public class Orange extends Fruit {
@XmlAttribute
private String orangeKey;
}
苹果类
public class Apple extends Fruit {
@XmlAttribute
private String appleKey;
}
如何配置我fruitList
的 inProject
以实现我想要的?
非常感谢!