java - 使用 XStream 映射继承

标签 java xml xstream

当通过继承编码(marshal)类时,仅保留子类的大部分数据。

例如,使用代码:

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输出父类数据?

最佳答案

您只需切换到较新的 XStream 版本即可。我使用 1.2.2 运行您的代码并得到以下结果:

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

关于java - 使用 XStream 映射继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35039792/

相关文章:

java - 如何将随机 alpha 数的生成限制为 12?

java - 是否可以调试在 jni4net 中运行的 Java 程序?

xml - XSL-T 将输入 xml 中缺少的架构元素添加为空标签

java - xStream 从列表检索时复制数据

java - Python 生成的 XML 中的错误

java - 通用集合和 XStream

java - XStream noClassDefFound 错误取决于运行时

java - Python程序转换成Java程序

xml - 如何使用 Apache fop 显示 Unicode 字符?显示 "?"而不是字符。

Java 应用程序 : Execute Batch File with subprocess/UNC Path