在我的代码中,我有类似的东西:
if (a.foo() == b.foo()){ ... something ... }
其中foo()
返回BigInteger
。我认为FindBugs应将此标记为错误
RC: Suspicious reference comparison (RC_REF_COMPARISON)
但事实并非如此。我试图将代码重新键入以下内容:
BigInteger c = a.foo();
BigInteger d = b.foo();
if(c == d){ ... something ...}
但这没有效果。我已经尝试了几个配置设置,找到具有相同误报结果的错误。我有很多代码需要验证,我需要找到所有这些错误。我缺少什么设置?
答案 0 :(得分:1)
可能FindBugs有一个它知道的类列表,不应该作为引用进行比较,BigInteger不在该列表中。
你是正确的,不应该将它们作为参考进行比较,因此BigInteger应该在列表中。一般来说,FindBugs无法知道任意类是否可以。