簡體   English   中英

Sonarqube 錯誤:Class 定義了一個不等於計算值的計算 serialVersionUID

[英]Sonarqube error: Class defines a computed serialVersionUID that doesn't equate to the calculated value

正確性 - Class 定義了一個不等於計算值的計算 serialVersionUID

這個可序列化的 class 定義了一個看似計算值的 serialVersionUID,但是該值與計算值不匹配,因此失去了它作為版本指示符的值。 創建自定義值,如 1、2、3、4.. 等,或使用 IDE 重新計算 serialVersionUID。

大概指的領域:

private static final long serialVersionUID = 18234907734L;

為什么 18234907734L 無效?

18234907734L無效,因為您進行了更改,導致新版本 class 的序列化形式與舊版本的序列化形式不兼容。 您應該更新serialVersionUID的值,但 sonarqube 檢測到您沒有。

(Sonar 可能不會比較新舊版本號,而是知道 IDE 使用什么算法生成版本號,並檢查 id 是否與其計算匹配)

改變

private static final long serialVersionUID = 18234907734L;

private static final long serialVersionUID = 1L;

當您以某種方式更改 class 結構時,不要忘記更新它,例如添加新字段或刪除字段。

另請參閱什么是 serialVersionUID,我為什么要使用它?

暫無
暫無

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

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