Java中toString()、String.valueOf、(String)強轉區別

一、前言

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

二、代碼實例

 1、基本類型

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

(2)推薦使用

(3)無法強轉

(String)是標準的類型轉換,將Object類型轉為String類型,使用(String)強轉時,最好使用instanceof做一個類型檢查,以判斷是否可以進行強轉,否則容易拋出ClassCastException異常。需要註意的是編寫的時候,編譯器並不會提示有語法錯誤,所以這個方法要謹慎的使用。

instanceof判斷

2、封裝類型

(1)toString ok

(2)String.valueOf()

自然也是可以的。

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

3、null值問題

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

(2)String.valueOf()返回字符串“null”

(3)null值強轉成功

三、源碼分析

1、toString()

2、String.valueOf()

String.valueOf()比toString多瞭一個非空判斷。

四、總結

1、toString(),可能會拋空指針異常

在這種使用方法中,因為java.lang.Object類裡已有public方法.toString(),所以java對象都可以調用此方法。但在使用時要註意,必須保證object不是null值,否則將拋出NullPointerException異常。采用這種方法時,通常派生類會覆蓋Object裡的toString()方法。

2、String.valueOf(),推薦使用,返回字符串“null”

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

3、(String)強轉,不推薦使用

(String)是標準的類型轉換,將Object類型轉為String類型,使用(String)強轉時,最好使用instanceof做一個類型檢查,以判斷是否可以進行強轉,否則容易拋出ClassCastException異常。需要註意的是編寫的時候,編譯器並不會提示有語法錯誤,所以這個方法要謹慎的使用。

到此這篇關於Java中toString()、String.valueOf、(String)強轉區別的文章就介紹到這瞭,更多相關Java中toString()、String.valueOf、(String)強轉內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: