在我的类中更改像版本2这样的getter方法是不是不好的做法?
版本1:
public String getMyValue(){
return this.myValue
}
版本2:
public String getMyValue(){
if(this.myValue == null || this.myValue.isEmpty()){
this.myValue = "N/A";
}
return this.myValue;
}
发布于 2012-12-14 17:50:26
在我看来,除非您正在执行lazy-loading
(在这种情况下您并不是这样),否则getters不应该更改该值。所以我要么:
将更改放入setter中
public void setMyValue(String value) {
if(value == null || value.isEmpty()){
this.myValue = "N/A";
} else {
this.myValue = value;
}
}
或者,如果value设置不正确,则让getter返回默认值:
public String getMyValue() {
if(this.myvalue == null || this.myvalue.isEmpty()){
return "N/A";
}
return this.myValue;
}
在延迟加载的情况下,我会说在getter中更改成员是可以的,您可以这样做:
public String getMyValue() {
if (this.myvalue == null) {
this.myvalue = loadMyValue();
}
return this.myValue;
}
发布于 2012-12-14 22:53:27
不是的。您在这里做了两件事。获取和设置。
发布于 2012-12-15 01:48:11
我通常定义一个特定的getter
。
切勿更改原始getter
public String getMyValue(){
return this.myValue
}
并创建特定的getter
public String getMyValueFormatted(){
if(this.myvalue == null || this.myvalue.isEmpty()){
return "N/A";
}else{
return this.myValue;
}
}
https://stackoverflow.com/questions/13876066
复制相似问题