在将两个BigIntegers与==进行比较时,FindBugs无法标记RC_REF_COMPARISON

时间:2013-02-20 12:12:56

标签: findbugs

在我的代码中,我有类似的东西:

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 ...}

但这没有效果。我已经尝试了几个配置设置,找到具有相同误报结果的错误。我有很多代码需要验证,我需要找到所有这些错误。我缺少什么设置?

1 个答案:

答案 0 :(得分:1)

可能FindBugs有一个它知道的类列表,不应该作为引用进行比较,BigInteger不在该列表中。

你是正确的,不应该将它们作为参考进行比较,因此BigInteger应该在列表中。一般来说,FindBugs无法知道任意类是否可以。