我该怎么设置serialVersionUID?

时间:2011-09-06 05:39:57

标签: java serialization

  

可能重复:
  Does it matter what I choose for serialVersionUID when extending Serializable classes in Java?
  Why generate long serialVersionUID instead of a simple 1L?

是否有与设置serialVersionUID相关的最佳做法或常见命名方案?

我觉得大多数人从0开始并从那里开始增量。我个人开始使用日期(例如09052011),因为我觉得它更具描述性。

2 个答案:

答案 0 :(得分:1)

没有理由更喜欢serialVersionUID的一个手动值而不是另一个。但是你永远不应该增加,你应该调整你的readObject()/ writeObject()/ writeReplace()/ readResolve()/ serializableFields以保持二进制兼容性,而不是在你打破它时考虑到一个方案。

答案 1 :(得分:0)

您通常应该将serialVersionUID作为您班级中的私有静态最终字段;你可以选择任何价值。如果你没有指定一个,会自动生成一个值(这种方法可能会导致问题,因为它依赖于编译器(对象结构)。还有一个工具(serialVer)随jdk一起提供,可用于生成id规格应该能够帮助解决细节。