JAXB不能反序列化成子类对象的问题
使用JDK7内置的JAXB-RI 去反序列化一段xml:
<person><name>tom</name><age>30</age><no>1a1a</no></person>
对应的POJO类是Person , Student父子两个类:
@XmlRootElement(name="person") @XmlAccessorType(XmlAccessType.FIELD) public class Person { protected String name; protected int age; // getter and setter } //------------------------------ @XmlRootElement(name="person") @XmlAccessorType(XmlAccessType.FIELD) public class Student extends Person { private String no; // getter and setter }
测试代码如下:
JAXBContext jc = JAXBContext.newInstance(Student.class,Person.class); Unmarshaller u = jc.createUnmarshaller(); Object o = u.unmarshal(new StringReader(xml)); Assert.assertTrue(o instanceof Person); System.out.println(o);
反序列化出来的o是一个Person父类的对象:
org.jaxb.demo.Person@3775f532
这里如何处理才能得到子类Student的对象那?
如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

发布评论
需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。