JAXB 的List 的解析与转换POJO

如果,有如下一个POJO类。
@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;
    }

你可能感兴趣的:(java,xml,JAXB)