1. 程式人生 > >String、toString、String.valueOf 三者對比

String、toString、String.valueOf 三者對比

String、toString和String.valueOf在android開發中有著非常明顯的區別,具體區別直接看程式碼:

Boolean boo = true;
String str1 = (String)boo;//編譯報錯
String str2 = boo.toString();//編譯通過
String str3 = String.valueOf(boo);//編譯通過

可以看出,String強轉是行不通的。再看一個例子:

Object oo = null;
String str1 = (String)oo;//編譯報錯
String str2 = oo.toString();//編譯通過,執行時報錯
String str3 = String.valueOf(oo);//執行正常

第三行執行時報錯:

15:44:40.938 18241 18241 E AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.sample/com.sample.Activity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference,所以,toString也存在缺點。

綜上所述,推薦使用String.valueOf進行型別轉換。