小编mou*_*dug的帖子

FindBugs EI_EXPOSE_REP错误只涉及日期吗?

Findbugs在我的代码上报告了很多EI_EXPOSE_REP和EI_EXPOSE_REP2错误,每次我写这样的getter和setter:

  public Date getDate() {
    return date;
  }
  public void setDate(final Date date) {
    this.date = date;
  }
Run Code Online (Sandbox Code Playgroud)

我理解报告的含义,我不应该将我的objet的内部引用暴露给外部世界,以便它们不会被恶意/错误的代码修改.修复将是:

  public Date getDate() {
    return date == null ? null : date.clone();
  }
  public void setDate(Date date) {
    this.date = date == null ? null : date.clone();
  }
Run Code Online (Sandbox Code Playgroud)

我的问题不在这里.我很惊讶这份报告关注的是ALWAYS Date.为什么不是所有其他可变对象?我认为这份报告也适用于所有可变对象,不是吗?

我是否应该将这种"良好做法"扩展到我处理可变对象的所有访问者?

给我你的建议,谢谢

java findbugs accessor getter-setter

6
推荐指数
1
解决办法
8222
查看次数

标签 统计

accessor ×1

findbugs ×1

getter-setter ×1

java ×1