我目前正在编写一个带有点对点“网络协议”的 java 游戏。这意味着我通过网络将对象发送到另一个游戏。
随着开发的进行,我添加和删除东西。我改变了游戏,它最终变得与旧版本不兼容。
现在我想将当前版本号存储在我通过网络发送的协议对象中,每次我进行更改时,我都可以更新版本,从而在代码中检测两个游戏实例是否兼容。
我的问题是:在java中保存版本号的标准类是什么?
我搜索可以为我提供主要、次要和补丁级别版本的东西,具有可比性等。
谷歌这样的课很难。。
我目前正在编写一个带有点对点“网络协议”的 java 游戏。这意味着我通过网络将对象发送到另一个游戏。
随着开发的进行,我添加和删除东西。我改变了游戏,它最终变得与旧版本不兼容。
现在我想将当前版本号存储在我通过网络发送的协议对象中,每次我进行更改时,我都可以更新版本,从而在代码中检测两个游戏实例是否兼容。
我的问题是:在java中保存版本号的标准类是什么?
我搜索可以为我提供主要、次要和补丁级别版本的东西,具有可比性等。
谷歌这样的课很难。。
版本控制机制取决于您使用的序列化机制。如果您使用标准 java 序列化,则该serialVersionUID
属性指示类的版本。您指定主要、次要和补丁级别的选项相当有限,因为 serialVersionUID 是long
AFAIK,在您的消息中明确包含协议版本号是一种标准做法。我建议对该字段使用字符串,因为数字字段通常过于严格(此外,现在使用字符串似乎是事实上的标准)。
这通常比对象上的版本更好,因为对象上的版本不一定与协议是否兼容相对应。
如果您使用 Java 序列化进行消息序列化,事情可能会变得有点复杂,因为 Java 序列化有自己的版本控制方案。您可以使用它,但使用独立的序列化协议(如 JSON、XML、protobuf 等)可能更容易。