gpt4 book ai didi

java - 关于游戏连载的建议

转载 作者:行者123 更新时间:2023-12-02 06:53:11 25 4
gpt4 key购买 nike

我正在编写一个游戏。我知道序列化对于保存和多人游戏很有用。如果我在客户端选择多人游戏时强制更新,我认为没有任何理由使用serialversionuid。

对于保存,我有一个问题:ID 是否会影响我将保存的游戏数据转换为游戏的新更新版本的能力?或者这都是基于逻辑的,将 id 保留为对手头游戏版本的简单引用?

提前感谢任何人。如果我的代表更高,我会投票:P

编辑:两个答案都非常有帮助。从他们那里,我收集到了关于序列化和游戏编程的信息:拥有 s-uid 将是有益的,因为游戏中不同事物的不同版本将需要对其版本的引用,以便能够跨版本兼容或不兼容。一个“游戏版本 ID”不足以提供足够的信息。感谢各位的澄清!

最佳答案

是的,serialVersionUid 旨在成为一个哈希值或版本,准确标识数据由哪个版本的 Serialized 类输出。

不幸的是,它主要是序列化的障碍——导致每一个微小的变化都会破坏序列化。任何不同的版本都会导致抛出异常。

建议的做法是在 java 源中生成或分配一个 serialVersionUid 常量,以避免不必要的不​​兼容。来自 Javadoc:

To guarantee a consistent serialVersionUID value across different java compiler implementations, a serializable class must declare an explicit serialVersionUID value.

如果您深入研究 Java 源代码,您也许能够找到实现/覆盖的方法,这可以让您更好地控制序列化。

参见:

  • java.io.ObjectInputStream
  • java.io.ObjectOutputStream
  • java.io.Externalized

关于java - 关于游戏连载的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17757670/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com