"Null"與字符串操作符"+" null+字符串時不會發生異常

以爲任何對null的使用都會有異常,(非字符串操作符'+) '例如:

String a = null;
String b = a + "#str";
System.out.println(b);

在我的印象裏,String b = a + "#str"這行應該會出現NullPointerException,然而事實卻不是這樣,結果null#str。

我們都知道,字符串操作符'+'可以對任何的對象、基本數據類型作'+',在操作之前會把所有的參數都轉成String類型。

那麼是如何把其他類型轉成String類型的呢,應該是通過String.valueOf()方法。

那麼,上面的結果就應該是String.valueOf(Object)的傑作:
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}

他對null做了特殊的處理,我能想象的出這樣做的好處,再說valueOf是String的一個方法他就是要把null的東西轉成"null"也是無可非議的。但是當在字符串相加的操作上面,使用了此方法之後,程序的結果就有點讓人迷惑了。

發佈了25 篇原創文章 · 獲贊 0 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章