Java中toString()、String.valueOf、(String)強轉區(qū)別
一、前言
相信大家在日常開發(fā)中這三種方法用到的應該很多,尤其是前兩種,經常在開發(fā)的時候,隨心所欲,想用哪個用哪個,既然存在,那就應該有它存在的道理,那么什么情況下用哪個呢?
二、代碼實例
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()方法是小編推薦使用的,因為它不會出現(xiàn)空指針異常,而且是靜態(tài)的方法,直接通過String調用即可,只是有一點需要注意,就是上面提到的,如果為null,String.valueOf()返回結果是字符串“null”。而不是null。
3、(String)強轉,不推薦使用
(String)是標準的類型轉換,將Object類型轉為String類型,使用(String)強轉時,最好使用instanceof做一個類型檢查,以判斷是否可以進行強轉,否則容易拋出ClassCastException異常。需要注意的是編寫的時候,編譯器并不會提示有語法錯誤,所以這個方法要謹慎的使用。
到此這篇關于Java中toString()、String.valueOf、(String)強轉區(qū)別的文章就介紹到這了,更多相關Java中toString()、String.valueOf、(String)強轉內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Spring Shell 命令行實現(xiàn)交互式Shell應用開發(fā)
本文主要介紹了Spring Shell 命令行實現(xiàn)交互式Shell應用開發(fā),能夠幫助開發(fā)者快速構建功能豐富的命令行應用程序,具有一定的參考價值,感興趣的可以了解一下2025-04-04
深入理解Java中的并發(fā)工具類CountDownLatch
CountDownLatch?作為?Java?中的一個同步工具類,用于在多線程間實現(xiàn)協(xié)調和控制,本文主要來和大家講解一下JUC?工具類?CountDownLatch的使用,需要的可以參考一下2023-07-07
SpringBoot?Knife4j框架&Knife4j的顯示內容的配置方式
Knife4j框架是基于Swagger2開發(fā)的在線API文檔生成工具,主要功能包括自動生成API文檔、接口文檔展示、接口測試工具、接口權限控制和在線調試,該框架支持通過注解自動生成詳細的接口文檔,開發(fā)者可以直接在文檔界面進行接口測試和調試2024-09-09
spring中REST和RESTful的區(qū)別以及基本實現(xiàn)
本文主要介紹了spring中REST和RESTful的區(qū)別以及基本實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-04-04
Java?Web?Axios實現(xiàn)前后端數(shù)據(jù)異步交互實例代碼
Axios作為一個流行的前端?HTTP?通信庫,可以極大地簡化前端與后端之間的數(shù)據(jù)交互,這篇文章主要介紹了Java?Web?Axios實現(xiàn)前后端數(shù)據(jù)異步交互的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-09-09

