我有几个可序列化的类,在没有指定serialVersionUID的情况下编译。我现在需要向这些类添加一些数据成员,但希望保留一些已经序列化的对象。
有没有找到这些序列化对象的serialVersionUID,以便我可以在源代码中指定相同的ID?
答案 0 :(得分:13)
如果您尚未修改代码,则可以运行serialver工具(JDK的一部分)并查看它生成的内容。我相信这会让你得到计算出来的seriVersionUID
。
答案 1 :(得分:6)
我通常做的是,我编译代码,尝试运行它,并且引发的异常提到了违规的SVUID,因此我可以将其剪切并粘贴到我自己的代码中。原油,但它的确有效。
答案 2 :(得分:3)
如果您使用的是Eclipse,则可以通过“快速修复”来生成计算出的serialVersionUID。 这当然只有在对象被序列化时具有类的(确切)源时才有效。
如果您至少拥有类文件,请使用“serialver”命令行工具(JDK附带)。