在java中序列化可变对象

在java中序列化可变对象

问题描述:

我正在编写基于网络的回合式java游戏,并且每次玩家进行移动时都使用java序列化api来序列化游戏状态。在java中序列化可变对象

令我烦恼的是,我发现api假定这些对象是不可变的。这意味着每次我尝试发送更新的游戏状态时,都会在客户端收到旧的游戏状态。

有没有办法让objectoutput/objectinputstream忘记一个对象已经被发送并且每次创建一个新的对象?

+3

这听起来不对 - 你可以发布一些示例代码来展示如何序列化对象吗? – 2012-04-24 14:07:28

+3

我知道我没有回答你的问题,但我会避免序列化API,而是实现一些更高级的,人类可读的API。一旦开始调试,它会节省您的时间...... – claesv 2012-04-24 14:09:24

ObjectOutputStream.reset()是你在找的东西:Oracle docs。它强制流发送更新的对象。