JAXB--@XmlElementWrapper注解和泛型一起使用(三)
当java对象的某个属性使用泛型时,普通对象都没问题,但是遇到HashSet这种集合类封装的元素时,就会出现元素内容序列化不出来的问题,详见如下:
?
一、示例:
第一步:定义java对象
?
?
?
?
?第二步:编组(JAXBContext.newInstance(Customer.class,HashSet.class);方法添加了
HashSet的class对象,以提供给JAXBContext使用。)
?
?
?
注:
1.泛型使用集合元素替代时,泛型属性所对应的xml没有序列化出来。
2.若JAXBContext.newInstance(Customer.class,HashSet.class);不添加HashSet
的class对象,则报错:
[javax.xml.bind.JAXBException: class java.util.HashSet nor any of its super class is known to this context.]
?
解决办法:
第一步:新增HashSet的包装类
?
Book类和Customer类相关代码均不需要改变,新增一个HashSet的包装类,定义如下:
?
??
?