Sonarqube错误:类定义了一个不等于计算值的计算所得serialVersionUID

正确性-类定义了一个不等于计算值的计算的serialVersionUID

此可序列化的类定义了似乎是计算值的serialVersionUID,但是该值与计算值不匹配,因此失去了其作为版本指示符的值。创建自定义值(例如1、2、3、4等),或使用IDE重新计算serialVersionUID。

可能是指该字段:

private static final long serialVersionUID = 18234907734L;

为什么18234907734L无效?

iCMS 回答:Sonarqube错误:类定义了一个不等于计算值的计算所得serialVersionUID

18234907734L无效,因为您进行了更改,使该类的新版本的序列化形式与旧版本的序列化形式不兼容。您应该更新serialVersionUID的值,但是sonarqube检测到您没有更新。

(Sonar可能不比较旧版本号和新版本号,而是知道IDE使用什么算法生成版本号,并检查id是否与其计算匹配)

更改

private static final long serialVersionUID = 18234907734L;

收件人

private static final long serialVersionUID = 1L;

当您以某种方式更改类结构时,例如通过添加新字段或删除字段,请不要忘记对其进行更新。

另请参阅What is a serialVersionUID and why should I use it?

本文链接:https://www.f2er.com/1982724.html

大家都在问