ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java – FindBugs:检测Object.hashCode()的调用

2019-06-29 00:48:08  阅读:318  来源: 互联网

标签:java static-analysis findbugs


如果一个对象没有实现它自己的hashCode()方法,那么它将使用默认实现Object.hashCode()(前提是它们之间没有超类). Object.hashCode()不保证在不同的JVM实例中生成相同的哈希代码.我们在集群环境中遇到了一些问题.

除了我们应用的一些修复,我们希望静态分析检测到这种情况.我们已经在使用FindBugs了,但不幸的是我没有扩展默认规则集的经验.

我做了一些研究,我知道你可以实现自己的自定义探测器,但我没有找到很多关于如何做到这一点的文档.

我想我的问题是:

>在我在这里投入太多工作之前,这种方法是否合理,FindBugs能做到这一点吗?
>让我开始编写自定义探测器的最佳资源是什么?

感谢您的输入!

解决方法:

Findbugs已经对hashCode进行了一些检查:(另见http://findbugs.sourceforge.net/bugDescriptions.html)

> HE_EQUALS_NO_HASHCODE
> HE_EQUALS_USE_HASHCODE
> HE_HASHCODE_NO_EQUALS
> HE_HASHCODE_USE_OBJECT_EQUALS
> HE_INHERITS_EQUALS_USE_HASHCODE(这可能对你的情况有用)

如果这些对您来说还不够,那么它们可能是创建自定义探测器的良好起点.

UPDATE.探测器的源代码可以在https://code.google.com/p/findbugs/source/browse/findbugs/src/java/edu/umd/cs/findbugs/和该回购的其他包中找到.

标签:java,static-analysis,findbugs
来源: https://codeday.me/bug/20190629/1321208.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有