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