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;

问题是A有23个不同的实现,问题可能是我使用了一个.getClass来创建jaxbContext,我将尝试向我们介绍包含具体类的包。
@XmlElementRef
private A a;