我们可以通过实现Serializable接口来序列化对象。那么我们何时应该通过提供以下方法来进行自定义序列化?为什么我们应该调用defaultWriteObject和defaultReadObject方法?
private void writeObject(ObjectOutputStream out) throws IOException
{ out.defaultWriteObject();
}
private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException
{
in.defaultReadObject();
}
答案 0 :(得分:1)
可能有各种各样的原因,这是你在试图解决问题时常常发现的许多事情之一。
您可能希望序列化一些不可序列化的第三方类型对象。或者在阅读时,您可以将数据从已弃用的字段迁移到另一个位置,从而无需运行大规模迁移。
我确信还有很多其他原因,我还没有解决这些问题。
默认的读取和写入方法基本上都是默认序列化,而您的代码只是附加的,所以请注意您调用它的顺序和自定义代码。