[英]error: local class incompatible: stream classdec serialversionUID= …, local 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 結構時,不要忘記更新它,例如添加新字段或刪除字段。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.