【发布时间】:2016-09-20 21:48:41
【问题描述】:
我不知道如何将元素添加到 List<Serializabe> 内容,这是我从使用 JaxB 自动生成的 java 类中获得的。
例如,我需要在该列表中添加简单的字符串,但是当我传递一个字符串时
sadrzaj.getContent().add("some string");
它说
java.lang.ClassCastException: jaxb.from.xsd.Clan$Sadrzaj$Stav 无法转换为 java.lang.String
这是我的代码:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"content"
})
public static class Sadrzaj {
@XmlElementRefs({
@XmlElementRef(name = "Tekst", namespace = "http://www.parlament.gov.rs/clan", type = JAXBElement.class),
@XmlElementRef(name = "Stav", namespace = "http://www.parlament.gov.rs/clan", type = JAXBElement.class)
})
@XmlMixed
protected List<Serializable> content;
public List<Serializable> getContent() {
if (content == null) {
content = new ArrayList<Serializable>();
}
return this.content;
}
我的静态类 Sadrzaj 的 XML 模式如下所示:
<complexType>
* <complexContent>
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* <choice>
* <element name="Stav" maxOccurs="unbounded">
* <complexType>
* <complexContent>
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* <sequence>
* <element name="Redni_broj" type="{http://www.w3.org/2001/XMLSchema}long"/>
* <element name="Tekst" type="{http://www.w3.org/2001/XMLSchema}string"/>
* </sequence>
* </restriction>
* </complexContent>
* </complexType>
* </element>
* <element name="Tekst" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded"/>
* </choice>
* </restriction>
* </complexContent>
* </complexType>
【问题讨论】:
标签: java xml list jaxb serializable