抑制Java Findbugs错误(EI_EXPOSE_REP)

时间:2011-03-29 12:13:59

标签: java date findbugs

我有一个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 10 Findbugs插件中运行Findbugs 1.3.9。

2 个答案:

答案 0 :(得分:11)

我刚刚意识到Findbugs分析编译的代码(.class文件),而不是源代码。在重建并重新运行Findbugs后,问题就消失了。

答案 1 :(得分:-1)

不,我们需要使用以下代码克隆该对象:

public Date getSomeDate() {
  return new Date(someDate.getTime()).clone();
}