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所抱怨的.)
应该简化代码,因为它做了 Firebug 通知您的不必要的事情。本次检查有效。
@Override
public int hashCode() {
return 31 + (int) (id ^ (id >>> 32));
}
Run Code Online (Sandbox Code Playgroud)