我有一个简单的问题,谷歌没有正确清除: 如果我将相同的Java二进制文件安装到不同的计算机上,它们的serialversionUID是否会保持不变?如果不是,那么除了明确改变之外,是他们的任何机制,其中serialversionUID是不同的?感谢您的解释。 (这是生成UID的算法的链接:algorithm)
答案 0 :(得分:2)
是的,因为serialVersionUID只是一个设置为静态值的成员变量,并且您没有在将它们放在第一台机器和第二台机器上之间重新编译二进制文件。
序列化/反序列化体系结构在运行时与serialVersionUID有关。如果使用serialVersionUID修改类的源代码,则应该检查类与未修改版本的序列化兼容性,如果不兼容,请将serialVerisonUID调整为该类的尚未使用的值。
答案 1 :(得分:0)
"流唯一标识符是类名,接口类名,方法和字段的64位哈希值。 如果你还没有改变类代码,它应该完全相同。