我有maven findbug插件版本2.5.4,在我的代码中它显示错误:
.getDateRlpx() may expose internal representation by returning Price.dateRlpx
.setDateRlpx(Date) may expose internal representation by storing an externally mutable object into Price.dateRlpx
但是在我的代码中我使用:
public Date getDateRlpx() {
return DateUtil.immutableDate(dateRlpx);
}
public void setDateRlpx(final Date dateRlpx) {
this.dateRlpx = DateUtil.immutableDate(dateRlpx);
}
我的immutableDate:
public static Date immutableDate(final Date sourceDate) {
if (sourceDate == null) {
return null;
}
return new Date(sourceDate.getTime());
}
为什么findbug会显示此错误?我创建了一个新的Date对象。我甚至尝试过简单的返回new Date(dateRlpx.getTimes())
,但它也没有用。我找不到任何解决方案。
答案 0 :(得分:2)
是的,Thomas是对的,这是环境问题,特别是从IDEA IDE运行tomcat服务器,它以某种方式阻止了findbug检查固定源代码,而是检查了目标目录或.war中的那个我没有检查它当然。所以现在它的所有工作和findbug都同意新的Date(date.getTime())是一个解决方案:)