【问题标题】:Serialize/deserialize via super class通过超类进行序列化/反序列化
【发布时间】:2011-12-08 09:10:44
【问题描述】:

假设我有 1 个基类和一个派生类。 派生类具有基类没有的额外字段。

然后我实例化派生类并将其分配给基类的定义。 当我通过基类序列化和反序列化对象时会发生什么。

例如:

Class TypeA{
   int var1;
}

Class TypeB extends class TypeA{
   int var2;
}

Class X{
  public TypeA obj = new TypeB();
}

如果我现在序列化“obj”,是否包含 var2?

【问题讨论】:

    标签: java serialization deserialization


    【解决方案1】:

    是的,序列化不依赖于引用的类型(obj 实际上是一个引用,我的意思是),而是依赖于被引用对象的类型/类,它仍然是 TypeB。如果您调用obj.getClass(),它将返回TypeB.class,这也是序列化所看到的。

    【讨论】:

    • 您可以序列化、反序列化,然后将obj 转换为TypeB 以证明这一点。
    猜你喜欢
    • 2017-01-16
    • 1970-01-01
    • 2013-07-10
    • 1970-01-01
    • 2021-12-13
    • 2021-05-08
    • 1970-01-01
    • 2013-10-12
    • 1970-01-01
    相关资源
    最近更新 更多