java - 关于在 Eclipse 中生成的 serialVersionUID

标签 java eclipse serialversionuid

在Eclipse中有没有办法串行生成serialVersionUID?我所说的串行是指如果一个可序列化类的 serialVersionUID = 1L,那么当我生成另一个类的 serialVersionUID 时,这将是 serialVersionUID = 2L。

如果我手动指定 1L、2L、3L 等,这会产生任何问题吗?

Eclipse 给了一个选择“Add generated serial version ID”的选项,选择这个选项安全吗?

最佳答案

不,它不会在您的两种情况下产生任何问题:

  • 您可以手动增量指定它
  • 您可以让 Eclipse 为它们分配随机生成的值
  • 你可以为不同的类(class)保留它们全部 1L

串行 UID 的目的是禁止在不同版本中对相同类进行序列化和反序列化,尤其是在没有向前兼容性的情况下(例如,新版本的类不能通过以前的定义进行序列化/反序列化)。

这种情况很少发生,尤其是在处理您自己的项目时,这些项目不属于依赖序列化的大型框架。因此,您可以放心地做任何您想做的事。

当您正在更新一个类并且您希望禁止使用先前声明的 SAME 类对其进行序列化时,您希望同一类具有不同的序列化的情况。

关于java - 关于在 Eclipse 中生成的 serialVersionUID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10389180/

相关文章:

java - 随机错误突出显示导致 JTextPane(阿拉伯语)

java - 如何将 View 从 Y 位置移动到另一个 Y

java - 在 Eclipse 上学习 Java(专注于企业)的好书

java - 为什么我的异常类需要序列化?

java - 为什么生成 long serialVersionUID 而不是简单的 1L?

java - 为什么Hibernate 不生成包含serialVersionUID 列的DDL?

java - Jboss Netty - 无法连续发送数据?

java - Hibernate 在用户单击时加载父级的子级?

java - Java代码不同步怎么调试?

eclipse - 在eclipse上安装tomcat