Java Jaxb marshall抽象类而不是唯一类
我有以下关系:Java Jaxb marshall抽象类而不是唯一类,java,jaxb,Java,Jaxb,我有以下关系: Class A abstract; Class B concrete extends A; Class C has a one to one relation with B. 让我们说 A a=new B(); 如果我封送A,它将使用B上显示的xml数据封送 <B> </B> 我得到: <C> <A> </A> </C> 但A是抽象的,因此在解组期间将引发异常。我的问题是,如何让jaxb Mars
Class A abstract;
Class B concrete extends A;
Class C has a one to one relation with B.
让我们说
A a=new B();
如果我封送A,它将使用B上显示的xml数据封送
<B>
</B>
我得到:
<C>
<A>
</A>
</C>
但A是抽象的,因此在解组期间将引发异常。我的问题是,如何让jaxb Marshall在整理C时处理具体类而不是抽象类,这样xml文件的结果将是:
<C>
<B>
</B>
<C>
您必须以这种方式注释Clacc C
public class C{
@XmlElements({
@XmlElement(name="B", type=B.class),
@XmlElement(name="D", type=D.class),
@XmlElement(name="E", type=E.class),
@XmlElement(name="F", type=F.class),
//....
})
private A a;
}
如果使用
@XmlElementRef
进行注释,则它将根据其@XmlRootElement
注释匹配该值
@XmlElementRef
private A a;
@XmlElementRef
private A a;