天天看點

頭條三面:String 那些事

一、前言

頭條三面:tostring()、string.valueof、(string)強轉,有啥差別?

相信大家在日常開發中這三種方法用到的應該很多,尤其是前兩種,經常在開發的時候,随心所欲,想用哪個用哪個,既然存在,那就應該有它存在的道理,那麼什麼情況下用哪個呢?

二、代碼執行個體

(1)基本類型沒有tostring()方法

頭條三面:String 那些事

(2)推薦使用

頭條三面:String 那些事

(3)無法強轉

頭條三面:String 那些事

(string)是标準的類型轉換,将object類型轉為string類型,使用(string)強轉時,最好使用instanceof做一個類型檢查,以判斷是否可以進行強轉,否則容易抛出classcastexception異常。需要注意的是編寫的時候,編譯器并不會提示有文法錯誤,是以這個方法要謹慎的使用。

頭條三面:String 那些事

instanceof判斷

頭條三面:String 那些事

(1)tostring ok

頭條三面:String 那些事

(2)string.valueof()

(3)封裝類型也無法強轉

頭條三面:String 那些事

(1)tostring()報空指針異常

頭條三面:String 那些事

(2)string.valueof()傳回字元串“null”

頭條三面:String 那些事

(3)null值強轉成功

頭條三面:String 那些事
頭條三面:String 那些事
頭條三面:String 那些事
頭條三面:String 那些事

string.valueof()比tostring多了一個非空判斷。

在這種使用方法中,因為java.lang.object類裡已有public方法.tostring(),是以java對象都可以調用此方法。但在使用時要注意,必須保證object不是null值,否則将抛出nullpointerexception異常。采用這種方法時,通常派生類會覆寫object裡的tostring()方法。

string.valueof()方法是小編推薦使用的,因為它不會出現空指針異常,而且是靜态的方法,直接通過string調用即可,隻是有一點需要注意,就是上面提到的,如果為null,string.valueof()傳回結果是字元串“null”。而不是null。

感謝閱讀,希望對你有所幫助 :)  來源:blog.csdn.net/guorui_java/article/details/117935620

頭條三面:String 那些事