返回零長度的數組或者集合,來代替null值

之前在項目開發的時候,一直喜歡在一些public方法中來判斷一些條件,如果不滿足就return null
比如
public String getSubString(String data, int start, int end){
if(TextUtil.isEmpty(data)){
return null;
}
return data.subString(start, end);
}
或者
private final List data =…;
.
.
.
public String getDataItem(int i){
if(data == null){
return null;
}
return data.get(i);
}

一直對於這種寫法深信不宜,認爲即安全又高效。
但是今天看了中的第43條
發現這樣寫是非常愚蠢的。因爲對於這種寫法的API的調用者,無時不刻需要對你返回的東西進行非常判斷。
而且我一直認爲return null開銷比較小,不用對內存進行重新分配(這也是看了深入理解java虛擬機之後沒有完全理解造成的弊端,總想要儘量避免GC)。
其實這些擔心都是多餘的,這種方法對內存的影響幾乎是沒有的。
所以正確的寫法應該是
public String sgetDataItem(int i){
if(data == null){
return “”;
}
return data.get(i);
}
返回一個空String

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章