Sonarqube error: Class defines a computed serialVersionUID that doesn't equate to the calculated value
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 结构时,不要忘记更新它,例如添加新字段或删除字段。
另见 What is a serialVersionUID and why should I use it?
正确性 - 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 结构时,不要忘记更新它,例如添加新字段或删除字段。
另见 What is a serialVersionUID and why should I use it?