小编Hon*_*Xin的帖子

为什么在写入ObjectOutputStream时必须首先调用defaultWriteObject函数?

当我阅读有关Serializable界面的内容时Thinking in java,有一句话说:

如果使用默认机制来编写对象的非瞬态部分,则必须将writeWriteObject()作为writeObject()中的第一个操作,并将defaultReadObject()作为readObject()中的第一个操作.

docs.oracle.com 5.6.2中:

添加writeObject/readObject方法 - 如果读取流的版本具有这些方法,则通常需要readObject读取默认序列化写入流所需的数据.它应该在读取任何可选数据之前先调用defaultReadObject.期望writeObject方法像往常一样调用defaultWriteObject来写入所需的数据,然后可以编写可选数据.

所以,如果我不defaultWriteObject先打电话,如果我在电话会议之前写了别的话,那会有问题吗?我试过了,但似乎它在我的例子中仍然有效.那么如果有任何问题,它会在什么条件下发生?

java serialization

14
推荐指数
1
解决办法
5922
查看次数

标签 统计

java ×1

serialization ×1