findbugs抱怨Eclipse自动生成的代码

chi*_*ity 7 java eclipse findbugs local-variables

hashCode()是Eclipse为我生成的方法:

@Override
public int hashCode() {
    final int prime = 31;
    int result = 1;
    result = prime * result + (int) (id ^ (id >>> 32));
    return result;
}
Run Code Online (Sandbox Code Playgroud)

当我在这上面运行findbugs时,它会抱怨最后一行:

方法... hashCode()在返回结果之前将结果存储在本地[Scariest(2),Normal confidence]

谁在这?Findbugs还是Eclipse?这个狡猾吗?

我不能为我的生活看到为什么这对于苦艾酒来说是令人沮丧的.代码非常清楚; 在返回之前将其存储在本地并不会使其难以阅读或难以维护; 除非编译器编写得非常糟糕,否则它也不会对性能产生任何影响.

然而,这被归类为最可怕的!

我错过了什么吗?

(显然,代码可以在某些方面进行简化,并且它就是这样出现的,因为就Eclipse而言,可能还有其他字段进入散列函数.但它特别是存储值然后立即返回的问题它是我在这里问的,因为这就是findbugs所抱怨的.)

Rom*_*n C 0

应该简化代码,因为它做了 Firebug 通知您的不必要的事情。本次检查有效。

@Override
public int hashCode() {
    return 31 + (int) (id ^ (id >>> 32));
}
Run Code Online (Sandbox Code Playgroud)