簡體   English   中英

抑制Java Findbugs錯誤(EI_EXPOSE_REP)

[英]Suppressing Java Findbugs error (EI_EXPOSE_REP)

我有一個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。

我剛剛意識到Findbugs分析了編譯代碼( .class文件),而不是源代碼。 在重建和重新運行Findbugs之后,問題就消失了。

不,我們需要使用以下代碼克隆該對象:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM