我将这个getter/setter写成Eclipse源菜单中的列表:
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
Run Code Online (Sandbox Code Playgroud)
和Sonar报告了两个问题:
返回"日期"的副本并存储"日期"的副本
随着解释
"不应存储或直接退回可变成员"
和一个示例代码:
public String [] getStrings() {
return strings.clone();}
public void setStrings(String [] strings) {
this.strings = strings.clone();}
Run Code Online (Sandbox Code Playgroud)
我想如果我的Date为null,它将抛出NullPointerException.然后我将我的代码更改为:
public Date getDate() {
if (this.date != null) {
return new Date(this.date.getTime());
} else {
return null;
}
}
public void setDate(Date date) {
if (date != null) {
this.date = new Date(date.getTime());
} else {
this.date = null;
}
} …Run Code Online (Sandbox Code Playgroud)