编辑:随机我的意思是一个大的计算数字,对我们作为开发人员来说没有语义意义
在实现 Serializable 接口时,它的最佳实践是指定串行版本 UID 非常重要。在许多地方,我经常看到使用随机数。例如
有效的 Java(第 2 版)第 312 页:
private static final long serialVersionUID = 234098243823485285L;
来自 Java 6 中的 String 类:
private static final long serialVersionUID = -6849794470754667710L;
来自 Java 6 中的 ArrayList 类:
private static final long serialVersionUID = 8683452581122892189L;
等等。甚至 eclipse 也提供了生成这些随机数的选项(尽管主要的默认值似乎是生成一个 serialVersionUID 1L
)
为什么要使用随机数?当它像任何明智的修订控制一样发生变化时,从 1L 开始并增加到 2L 不是更有意义吗?我能想到的唯一一次使用看似随机的数字是,如果您没有指定一个 serialVersionUID 开头并且现在想要这样做(它将您与运行时自动生成的版本联系起来以提供向后兼容性支持)。