Man*_*uPK 11 java coding-style findbugs
正如以下代码中的问题所述
public Date getSomeDate() {
return someDate;
}
Run Code Online (Sandbox Code Playgroud)
会给你findbug错误问题.
建议的解决方案是在getter和setter中复制Date对象
public Date getSomeDate() {
return new Date(someDate.getTime());
}
Run Code Online (Sandbox Code Playgroud)
这是一个好方法还是有其他替代方法?
在Java中是否有可以解决此问题的任何不可变日期库?
小智 7
关注人......
除了适应getter和setter之外,还需要注意null值:
public Date getSomeDate() {
if (this.someDate == null) {
return null;
}
return new Date(this.someDate.getTime());
}
public void setSomeDate(final Date someDate) {
if (someDate == null) {
this.someDate = null;
} else{
this.someDate = new Date(someDate.getTime());
}
}
Run Code Online (Sandbox Code Playgroud)