使用 XStream 映射继承

Mapping Inheritance with XStream

当使用继承封送 classes 时,只有子级大多数 class 数据被保留。

例如,使用代码:

public class Test {

    static class Person {
        String name;
    }

    static class Employee extends Person {
        String job;
    }

    public static void main(String[] args) {
        Employee me = new Employee();
        me.name = "Sam";
        me.job = "Developer";
        XStream xStream = new XStream();
        xStream.alias("employee", Employee.class);
        String xml = xStream.toXML(me);
        System.out.println(xml);
    }
}

我的输出如下:

<employee>
  <job>Developer</job>
</employee>

如何让 XStream 输出父 class 数据?

您只需切换到较新的 XStream 版本。我 运行 你的代码 1.2.2 并得到这个结果:

<employee>
  <job>Developer</job>
  <name>Sam</name>
</employee>