我有以下课程:
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
的源代码?