我有一个如下所示的Java gettor方法:
import java.util.Date;
//...
public Date getSomeDate() {
return someDate;
}
Findbugs报告说,这公开了一个可变对象:“可以通过返回对可变对象的引用来公开内部表示”。我将代码更改为:
import java.util.Date;
//...
public Date getSomeDate() {
return new Date(someDate.getTime());
}
但是Findbug仍然报告了同样的漏洞。我还能做些什么来抑制/修复此问题?我正在运行IntellJ 10FindBugs插件中的Findbugs 1.3.9。
发布于 2011-03-29 20:16:48
我刚刚意识到Findbugs分析的是编译的代码(.class
文件),而不是源代码。在重新构建并重新运行Findbugs之后,这个问题就消失了。
发布于 2013-03-18 18:15:33
不,我们需要使用以下代码克隆该对象:
public Date getSomeDate() {
return new Date(someDate.getTime()).clone();
}
https://stackoverflow.com/questions/5472299
复制相似问题