天天看點

傳回零長度的數組或者集合,來代替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