<分区>
编辑:我所说的随机是指一个大的计算数字,对我们开发人员来说没有语义意义
在实现 Serializable 接口(interface)时,指定串行版本 UID 是最佳实践,也是非常重要的。在许多地方,我经常看到使用随机数。例如
Effective 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 也提供了生成这些随机数的选项(尽管主要默认设置似乎是生成 1L
的 serialVersionUID)
为什么要使用随机数?从 1L 开始并在它像任何合理的修订控制一样更改时增加到 2L 不是更有意义吗?我唯一能想到使用看似随机数的情况是,如果您没有指定 serialVersionUID 开始并且现在想这样做(这将您绑定(bind)到运行时自动生成的版本以提供向后兼容性支持)。