String、toString、String.valueOf 三者對比
阿新 • • 發佈:2019-02-02
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進行型別轉換。