使用 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>
当使用继承封送 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>