为什么在写入 ObjectOutputStream 时必须首先调用 defaultWriteObject 函数?
当我在 中读到关于接口时,有一句话说:Serializable
Thinking in java
如果使用默认机制写入对象的非瞬态部分,则必须调用 defaultWriteObject( ) 作为 writeObject( ) 中的第一个操作,将 defaultReadObject( ) 作为 readObject( ) 中的第一个操作。
添加 writeObject/readObject 方法 - 如果读取流的版本具有这些方法,则 readObject 应像往常一样读取通过默认序列化写入流的所需数据。在读取任何可选数据之前,它应该首先调用 defaultReadObject。与往常一样,writeObject 方法应调用 defaultWriteObject 来写入所需的数据,然后可以写入可选数据。
因此,如果我不先打电话,如果我在打电话之前写点别的东西,会有什么问题吗?我已经尝试过了,但似乎它在我的示例中仍然有效。那么,如果有什么问题,在什么条件下会发生呢?defaultWriteObject