如果,有如下一个POJO类。
如果没有XML声明,那么在Marshaller转换时肯定会出错,因为它不知道list的类型是什么。
这样,有2个解决办法。
一、给list限定类型
private List<Address> list;
这样,就可以正常运行了,不需要 XML声明。
二、通过XML声明解决,告诉JAXB List中的内容是Address.class
@XmlRootElement
public class PJaxb {
private String name;
private String pass;
private List list;
如果没有XML声明,那么在Marshaller转换时肯定会出错,因为它不知道list的类型是什么。
这样,有2个解决办法。
一、给list限定类型
private List<Address> list;
这样,就可以正常运行了,不需要 XML声明。
二、通过XML声明解决,告诉JAXB List中的内容是Address.class
@XmlElements({ @XmlElement(name="contact",type=Address.class),
@XmlElement(name="family",type=Family.class) })
public void setList(List list) {
this.list = list;
}
本文详细介绍了在使用JAXB进行序列化时遇到未知类型问题的解决方案,包括限定类型和XML声明两种方法,并通过实例代码演示了如何正确处理JAXB中的类型不确定性。
2460

被折叠的 条评论
为什么被折叠?



