仅序列化超类

时间:2017-04-28 12:59:34

标签: java inheritance serialization

我有以下课程:

class A implements Serializable {
  String field1;
  String field2;
  // a lot more fields here...
}

class B extends A {
  int someOtherField;
}

其中B是我的班级,而A是我不拥有的套餐。在我的环境中,类B的对象被序列化,稍后将在不同的环境中反序列化,其中只有类A在类路径中,而不是类B,因此错误将发生时,找不到类B

要解决此问题,我可以按如下方式将复制构造函数添加到A,而不是序列化对象b,我会序列化new A(b)

A(A other) {
  this.field1 = other.field1;
  this.field1 = other.field1;
  // and so on
}

我现在的问题是我只能更改B,而不能更改A。 那么,有没有什么方法可以序列化B并将其反序列化为A而无法访问A的源代码?

0 个答案:

没有答案