假设我有完全不同的类,具有不同的类名。我应该在课程中使用其他serialVersionUID吗?

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

JRE如何反序列化?

最佳答案

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

当对象被序列化时,类标识符(package.name.ClassName)和SUID都是标头的一部分,以标识该对象所属的类,并确保写入侧和读取侧之间不存在不兼容性

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

07-24 18:48