如何找出序列化 Java 对象的 serialVersionUID?

2022-09-04 08:42:00

我有几个可序列化的类,它们是在没有指定串行VersionUID的情况下编译的。我现在需要向这些类添加一些数据成员,但希望保留一些已经序列化的对象。

是否无论如何都要找出这些序列化对象的串行VersionUID,以便我可以在源代码中指定相同的ID?


答案 1

如果您尚未修改代码,则可以运行串行器工具(JDK 的一部分)并查看它生成的内容。我相信这会让你得到计算出来的东西。seriVersionUID

这是一篇关于串行器的简短文章。


答案 2

我通常做的是,我编译代码,尝试运行它,并且引发的异常提到了有问题的SVUID,所以我可以将其剪切并粘贴到我自己的代码中。粗糙,但它有效。