在尝试解组对象时,我遇到了继承问题。这是我的课
一个
@XmlRootElement(name="A")
public abstract class A{
}
乙
@XmlRootElement(name="B")
public class B extends A{
String bField;
@XmlAttribute(name="b")
public String getBField(){
return bField;
}
public void setBField(String value){
this.bField = value;
}
}
C
@XmlRootElement(name="C")
public class C extends A{
String cField;
@XmlAttribute(name="c")
public String getCField(){
return cField;
}
public void setCField(String value){
this.cField = value;
}
}
容器
@XmlRootElement(name="container")
public class Container{
ArrayList<B> listB;
ArrayList<C> listC;
public ArrayList<B> getListB(){
return listB;
}
@XmlElementWrapper(name="list-B")
@XmlElement(name="b")
public ArrayList<B> getListB(){
return listB;
}
@XmlElementWrapper(name="list-C")
@XmlElement(name="c")
public ArrayList<C> getListC(){
return listC;
}
public ArrayList<C> getListC(){
return listC;
}
}
然后输入XML文件
<container>
<list-B>
<b b="BFied"/>
</list-B>
<list-C>
<c c="CField"/>
</list-C>
</container>
我使用了与 Spring OXM 集成的 EclipseLink JAXB。当我将 xml 文件解组到 Container 的实例时,每件事都是重复的。在列表 B 中,我有 2 B 个重复的实例(与列表 C 相同)。
请让我知道我在哪里做错了?谢谢!