国际象棋比赛的序列化

时间:2016-10-15 10:02:35

标签: java serialization deserialization chess

大家好,                在JAVA ...我正在写一个国际象棋代码。在那个国际象棋代码中,GAME是主要类。它组成了BOARD类,BOARD组成了KING,QUEEN,BISHOP,KNIGHT,ROOK等类。这些类KING,QUEEN,BISHOP,KNIGHT,ROOK扩展了PIECSES。所以现在我想要保存游戏然后播放它。我已经阅读了序列化的概念,但我没有得到如何实现它以及我应该写哪个类"实现Serializable" .i在我的代码中也有静态变量。 会在序列化之前将静态变量复制到正常变量中,并在反序列化帮助后将其复制回静态变量吗?谢谢......

1 个答案:

答案 0 :(得分:0)

要在Java中序列化对象,您必须确保: - 此类中的每个字段都是可序列化的 - 如果您的任何字段不可序列化,则必须将其标记为瞬态。这些字段将在序列化/反序列化后获得默认值。

回答你的问题。你想要做的是将你的Game对象保存到数据流并将其存储在某个地方,然后在一段时间后加载它。要做到这一点,你需要使类游戏实现Serializable。确保组成Game的每个类都实现Serializable(如King,Queen等)。

将静态上下文保存到本地变量可能有效,但它不是一个很好的解决方案。试着重新思考你的游戏类实际上做了什么。每个游戏对象应该是游戏的独立状态,不需要在游戏之间共享静态上下文。

About object serialization

Serialization of static variables