頭條三面:toString()、String.valueOf、(String)強轉(zhuǎn),有啥區(qū)別?
一、前言
相信大家在日常開發(fā)中這三種方法用到的應(yīng)該很多,尤其是前兩種,經(jīng)常在開發(fā)的時候,隨心所欲,想用哪個用哪個,既然存在,那就應(yīng)該有它存在的道理,那么什么情況下用哪個呢?
二、代碼實例
1、基本類型
(1)基本類型沒有toString()方法

(2)推薦使用

(3)無法強轉(zhuǎn)

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

instanceof判斷

2、封裝類型
(1)toString ok

(2)String.valueOf()
自然也是可以的。推薦:Java進階視頻資源
(3)封裝類型也無法強轉(zhuǎn)

3、null值問題
(1)toString()報空指針異常

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

(3)null值強轉(zhuǎn)成功

三、源碼分析
1、toString()


2、String.valueOf()

String.valueOf()比toString多了一個非空判斷。
四、總結(jié)
1、toString(),可能會拋空指針異常
在這種使用方法中,因為java.lang.Object類里已有public方法.toString(),所以java對象都可以調(diào)用此方法。但在使用時要注意,必須保證object不是null值,否則將拋出NullPointerException異常。采用這種方法時,通常派生類會覆蓋Object里的toString()方法。
2、String.valueOf(),推薦使用,返回字符串“null”
String.valueOf()方法是小編推薦使用的,因為它不會出現(xiàn)空指針異常,而且是靜態(tài)的方法,直接通過String調(diào)用即可,只是有一點需要注意,就是上面提到的,如果為null,String.valueOf()返回結(jié)果是字符串“null”。而不是null。
3、(String)強轉(zhuǎn),不推薦使用
(String)是標準的類型轉(zhuǎn)換,將Object類型轉(zhuǎn)為String類型,使用(String)強轉(zhuǎn)時,最好使用instanceof做一個類型檢查,以判斷是否可以進行強轉(zhuǎn),否則容易拋出ClassCastException異常。需要注意的是編寫的時候,編譯器并不會提示有語法錯誤,所以這個方法要謹慎的使用。
感謝閱讀,希望對你有所幫助?:)?
來源:blog.csdn.net/guorui_java/article/details/117935620
程序汪資料鏈接
堪稱神級的Spring Boot手冊,從基礎(chǔ)入門到實戰(zhàn)進階
臥槽!字節(jié)跳動《算法中文手冊》火了,完整版 PDF 開放下載!
臥槽!阿里大佬總結(jié)的《圖解Java》火了,完整版PDF開放下載!
字節(jié)跳動總結(jié)的設(shè)計模式 PDF 火了,完整版開放下載!
歡迎添加程序汪個人微信 itwang009? 進粉絲群或圍觀朋友圈
