正确性-类定义了一个不等于计算值的计算的serialVersionUID
此可序列化的类定义了似乎是计算值的serialVersionUID,但是该值与计算值不匹配,因此失去了其作为版本指示符的值。创建自定义值(例如1、2、3、4等),或使用IDE重新计算serialVersionUID。
可能是指该字段:
private static final long serialVersionUID = 18234907734L;
为什么18234907734L无效?
正确性-类定义了一个不等于计算值的计算的serialVersionUID
此可序列化的类定义了似乎是计算值的serialVersionUID,但是该值与计算值不匹配,因此失去了其作为版本指示符的值。创建自定义值(例如1、2、3、4等),或使用IDE重新计算serialVersionUID。
可能是指该字段:
private static final long serialVersionUID = 18234907734L;
为什么18234907734L无效?
18234907734L
无效,因为您进行了更改,使该类的新版本的序列化形式与旧版本的序列化形式不兼容。您应该更新serialVersionUID
的值,但是sonarqube检测到您没有更新。
(Sonar可能不比较旧版本号和新版本号,而是知道IDE使用什么算法生成版本号,并检查id是否与其计算匹配)
更改
private static final long serialVersionUID = 18234907734L;
收件人
private static final long serialVersionUID = 1L;
当您以某种方式更改类结构时,例如通过添加新字段或删除字段,请不要忘记对其进行更新。