Java 输入为泛型类的JAXBContext.newInstance

Java 输入为泛型类的JAXBContext.newInstance,java,xml,jaxb,Java,Xml,Jaxb,我有几个像这样的JavaBean(getter和setter省略): 和xml文件,就像 <body> <item> <gruppe>a</gruppe> <art>b</art> </item> <item> <gruppe>a</gruppe> <art>b</art&

我有几个像这样的JavaBean(getter和setter省略):

和xml文件,就像

<body>
    <item>
        <gruppe>a</gruppe>
        <art>b</art>
    </item>
    <item>
        <gruppe>a</gruppe>
        <art>b</art>
    </item>
</body> 
如果我不让我的wrapperclass泛型化,一切都会很好。我想问题是,当我想从我的泛型包装类中获取JAXBContext.newInstance时,泛型部分没有设置,所以它尝试使用BaseObject中最基本的构造函数,它是抽象的。。。如何告诉该方法将wrapper.class生成为GenericWrapper的实例?他使用的是天赋的构造器,而不是我抽象的BaseObject

附言:我肯定我忘了很多需要的信息。请允许,我会提供所需的一切。如果另一个洞看起来更合理,我也愿意听。但总的来说,这个问题的答案会很好

编辑:BaseObject只是一个MappedSuperclass和struktur包:

@MappedSuperclass
@PrimaryKeyJoinColumn(name = "colConfig")
public abstract class BaseObject {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    int id;
    private String name;
    @Column(columnDefinition = "TEXT")
    private String beschreibung;

我们不知道什么是基本物体或结构


话虽如此,根据,您可以尝试将impl类注释为@XmlRootElement,将抽象类注释为@xmltransive,JAXB如何区分应解组的
BaseObject
的哪个子类?这对泛型类不起作用。JAXB不知道您实际上是想让
E
成为
Talent
。但是,可以设计一个类,该类可以接受列表中
BaseObject
的不同子类,只要它们在XML中具有不同的元素名称。让我知道你是否对此感兴趣。@right!这就是问题所在:如果有办法在上下文中告诉JaxB,我的意思是“GenericWrapper.class”。其他元素名称将太麻烦。*如果有办法在上下文中告诉JaxB,我的意思是
GenericWrapper.class
-否。因为从技术上讲,没有单独的
GenericWrapper.class
.thx来引用帮助。。。我决定反对,认为这不会有多大区别。我加上去了。
@XmlRootElement(name = "body")
public class GenericWrapper<E extends BaseObject> {

    private ArrayList<E> talentListe;

    public ArrayList<E> getTalentListe() {
        return talentListe;
    }

    @XmlElement(name = "item")
    public void setTalentListe(ArrayList<E> talentListo) {
        this.talentListe = talentListo;
    }
}
JAXBContext context = JAXBContext.newInstance(GenericWrapper.class);
Unmarshaller um = context.createUnmarshaller();
GenericWrapper<Talent> gw = (GenericWrapper<Talent>) um.unmarshal(new FileReader(STORE_FILENAME));
List<Elementar> list = gw.getTalentListe();
Exception in thread "main" javax.xml.bind.UnmarshalException: Unable to create an instance of struktur.BaseObject
@MappedSuperclass
@PrimaryKeyJoinColumn(name = "colConfig")
public abstract class BaseObject {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    int id;
    private String name;
    @Column(columnDefinition = "TEXT")
    private String beschreibung;