java - xstream > 在模型中进行抽象时的向后兼容性

标签 java backwards-compatibility xstream

我有

class A {
   @xstreamalias("obj1");
   Object obj1;
   @xstreamalias("obj2");
   Object obj2;
}

and I want to change to 
class AbstractA {
   @xstreamalias("obj1");
   Object obj1;
}

class A extends AbstractA{
   @xstreamalias("obj2");
   Object obj2;
}


不会丢失 obj1 的内容。

目前我在阅读旧的 xml 时没有遇到任何问题,除了我丢失了 obj1 的内容。 xstream 是否支持此功能?我的意思是,抽象在模型变更中是很常见的事情。

最佳答案

只要 XML 仍然适合,XStream 并不真正关心 A 是否是子类。

我的建议:将新类 A 的序列化结果与旧类 A 的序列化结果进行比较(它们应该相同)。如果没有,那么这就是您问题的根源。

关于java - xstream > 在模型中进行抽象时的向后兼容性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1833458/

相关文章:

java - 程序因文本字段为空而崩溃

java - 据说,当我们创建子类的对象时,会自动创建其父类(super class)的对象。这是真的吗?

java - 如何从 Document 或 Node 创建 InputStream

java - 如何等待窗口的退出事件?

java - 如何在Android中设计一个简单的游戏 map ?

Xcode 3.2.4 和 Mac OS X 10.5

android - 当我开发Android应用程序时,我想在较低的Android版本中使用较高API的方法。怎么做?

python - Jython从2.2.1版本升级到2.5.2,可能存在的风险

java - 在 xstream 中省略 xml 声明

java - 如何使用 XStream 处理相同数据的变体?