作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的类层次结构:
@XmlAccessorType(XmlAccessType.FIELD)
public abstract class GenericItem {
@XmlElement(name = "Id", required = true)
private String itemId;
////other fields
}
@XmlAccessorType(XmlAccessType.FIELD)
public class Item extends GenericItem {
@XmlElement(name = "AreaType", required = true)
private String areaType;
///other fields
}
@XmlAccessorType(XmlAccessType.FIELD)
public abstract class GenericData<T extends GenericItem>{
@XmlElement(name = "Item")
private List<T> itemList;
public List<T> getItemList() {
return itemList;
}
public void setItemList(List<T> itemList) {
this.itemList = itemList;
}
////other fields
}
@XmlRootElement(name = "Data")
@XmlAccessorType(XmlAccessType.FIELD)
public class Data extends GenericData<Item> {
////other fields
}
当我尝试解开看起来像这样的 XML 文档时
<Data>
<Item/>
<Item/>
</Date>
我有错误javax.xml.bind.UnmarshalException - 带有链接异常:[com.sun.istack.SAXParseException2;无法创建 GenericItem 的实例]
JAXBContext jc = JAXBContext.newInstance(Data.class, GenericData.class,Item.class, GenericItem.class);
Unmarshaller unmarshaller = jc.createUnmarshaller();
--error here--> JAXBElement<Data> jb = unmarshaller.unmarshal(xmlStreamReader, Data.class);
拜托,我需要帮助:(
最佳答案
作为解决方法,删除抽象关键字并尝试通用类。
list of java classes to be recognized by the new JAXBContext.
这就是文档中对 classesToBeBound 参数的描述,它表示它应该能够创建一个新对象来识别参数。对于抽象类,这是不可能的。
尝试结合使用@MappedSuperclass
和@XmlSeeAlso
。用这些注释基类并使它们抽象。
关于java - 解码扩展抽象泛型类的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22688729/
我是一名优秀的程序员,十分优秀!