当前位置: 首页 > 知识库问答 >
问题:

Sonarqube错误:类定义的计算SerialVersionId不等于计算值

曹泉
2023-03-14

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

这个serializable类定义了一个serialVersionUID,它似乎是一个计算值,但是该值与计算值不匹配,因此失去了作为版本指示符的值。或者创建一个自定义值,如1、2、3、4。。等等,或者使用IDE重新计算serialVersionUID。

可能是指领域:

private static final long serialVersionUID = 18234907734L;

为什么18234907734L无效?

共有1个答案

鲁阳焱
2023-03-14

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

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

改变

private static final long serialVersionUID = 18234907734L;

private static final long serialVersionUID = 1L;

当您以某种方式更改类结构时,不要忘记更新它,比如添加新字段或删除字段。

另请参阅什么是序列版本UID,为什么我应该使用它?

 类似资料:
  • 我试图将util模块对象传递给puppeteer,但没有成功。我知道这个问题是在如何将所需的模块对象传递给puppeteer page.evaluate中提出的,但提供的解决方案在我的情况下不起作用。MWE: 显示错误: UnhandledPromiseRejectionWarning:未处理的承诺拒绝(拒绝ID:1):错误:计算失败:ReferenceError:未定义util 谢谢 在初始行中

  • 问题内容: 应该返回什么?根据我的计算,应该是,但是解释器会返回。 这是Python的事情,还是我的数学很糟糕? 问题答案: 根据docs,其优先级高于,因此您的代码等同于。为了获得理想的结果,您可以将其放在括号中 或使用内置功能 或功能(返回值)

  • 我有这个模式 列表表 [{“movie_id”:100,“gene1”:“犯罪”,“计数”:1,“id”:100},{“movie_id”:141267,“gene1”:“犯罪”,“计数”:1,“id”:141267},{“movie_id”:207932,“gene1”:“犯罪”,“计数”:1,“id”:207932},{“movie_id”:238636,“gene1”:“惊悚”,“计数”:1

  • 在这一点上,如果你有兴趣像MPL一样进行类型计算,你可能会想知道Hana如何帮助你。不用担心,Hana提供了一种通过将类型表示为值来执行具有大量表达性的类型计算的方法,就像我们将编译时数字表示为值一样。 这是一种全新的接触元编程的方法,如果你想熟练使用Hana,你应该尝试将你的旧MPL习惯放在一边。 但是,请注意,现代C++的功能,如自动推导返回类型,在许多情况下不需要类型计算。 因此,在考虑做一

  • 本文向大家介绍计算在C ++中除数等于K的 我们给了两个数字N和K。目标是找到1到N之间具有等于[[,N]]中的K除数的除数。 我们将首先计算范围[1,N]中的K的除数,然后将其存储在变量count中。 现在我们将从i = 1到i = N开始。现在,对于每个数字num = i(使得i!= K),将num的除数计数在范围[1,N]中。并将它们的出现存储在变量除数中。 如果除数=计数,则num在[1,