serialVersionUID = 1L比生成串行版本ID更好吗?

时间:2014-10-12 17:56:39

标签: java serialization

这可能是一个狡猾的问题,但我仍在寻求答案。我编写了一个程序,我使用Eclipse IDE生成串行版本ID。但我的项目负责人坚持要我只使用1L而不是在Serializable接口的情况下生成串行版本ID。请建议我哪个更好。在实现Serializable接口时,最好使用1L或生成串行版本ID。这两者有什么区别吗?是否有任何性能影响?

提前做好准备。

2 个答案:

答案 0 :(得分:2)

这完全取决于理由。如果使用1L 且从未更改(当更改序列化兼容性时),那么您就会遇到问题(很可能是序列化协议损坏)。如果1L用作第一个版本,然后根据需要手动增加,那就没关系了。只要维护得当,该版本的实际值并不重要(除非极少数情况除外)。

答案 1 :(得分:0)

还有第三种选择:用

注释你的班级
@SuppressWarnings("serial")

创建serialVersionUID字段设置为'1`:

  • 只会用来压制警告
  • 在功能上无用

使用专门为此情况设计的注释,而不是创建无用的代码,其唯一的目的是抑制警告。