在java对象中存储版本号

时间:2013-11-02 14:04:09

标签: java version standard-library

我目前正在编写一个带有点对点“网络协议”的java游戏。这意味着我通过网络将对象发送到另一个游戏。

随着开发的进行,我添加和删除东西。我改变了游戏,最终与旧版本不兼容。

现在我想将当前版本号存储在我通过网络发送的协议对象中,每次我更改时都可以更新版本,从而检测代码是否兼容。

我的问题是:在java中保存版本号的标准类是什么?

我搜索的东西可以提供主要,次要和补丁级别的版本,可比较等等。

很难谷歌这样的课......

2 个答案:

答案 0 :(得分:0)

版本控制机制取决于您使用的序列化机制。如果您使用的是标准java序列化,则serialVersionUID property表示该类的版本。 您可以选择指定major,minor和amp;补丁级别相当有限,因为serialVersionUID是long

答案 1 :(得分:0)

AFAIK,在您的消息中明确包含协议版本号是一种标准做法。我建议使用字符串作为该字段,因为数字通常限制太多(此外,使用字符串似乎是现在的事实上的标准)。

这通常比在对象上拥有版本更好,因为对象上的版本不一定与协议是否兼容。

如果您正在使用Java序列化进行消息序列化,那么事情可能会变得更复杂,因为Java序列化具有自己的版本控制方案。您可以使用它,但使用独立的序列化协议(如JSON,XML,protobuf等)可能更容易。