2

假设我有不同类名的完全不同的类。我应该serialVersionUID在课堂上使用不同的吗?

如果是这样,为什么有必要?

JRE究竟是如何反序列化的?

4

1 回答 1

1

不,您不需要不同的 SUID(所有类都可以使用 1)

当一个对象被序列化时,类标识符(package.name.ClassName)和SUID都是标头的一部分,用于标识对象所属的类,并确保写入端和读取端之间没有不兼容

但是当您在结构上更改一个类(添加/删除一个字段)时,您应该为该类设置一个新的 SUID(在调试期间,您可以让 JVM 在运行时根据 .class 文件创建一个新的)

于 2012-09-19T14:33:46.833 回答