簡體   English   中英

如何找出序列化 Java object 的 serialVersionUID?

[英]How can I find out the serialVersionUID of a serialized Java object?

我有幾個在沒有指定 serialVersionUID 的情況下編譯的可序列化類。 我現在需要向這些類添加一些數據成員,但希望保留一些已經序列化的對象。

有沒有辦法找出這些序列化對象的serialVersionUID,以便我可以在源代碼中指定相同的ID?

如果您尚未修改代碼,您可能可以運行 serialver 工具(JDK 的一部分)並查看它生成的內容。 我相信這會讓你知道計算出的seriVersionUID是什么。

這是關於serialver的簡短文章。

我通常做的是,我編譯代碼,嘗試運行它,並且引發的異常提到了有問題的 SVUID,所以我可以將它剪切並粘貼到我自己的代碼中。 粗魯,但它有效。

如果您使用的是 Eclipse,它有一個“快速修復”來生成計算出的 serialVersionUID。 這當然只有在對象被序列化時擁有類的(確切)源時才有效。

如果您至少有 class 文件,請使用“serialver”命令行工具(JDK 附帶)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM