最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java中toString()、String.valueOf()、(String)?強(qiáng)轉(zhuǎn)的區(qū)別

 更新時間:2024年06月28日 10:45:08   作者:文丑顏不良啊  
在實(shí)際開發(fā)中,少不了使用這三種方法對某一個類型的數(shù)據(jù)進(jìn)行轉(zhuǎn)?String?的操作,本文就來介紹了java中toString()、String.valueOf()、(String)?強(qiáng)轉(zhuǎn)的區(qū)別,感興趣的可以了解一下

在實(shí)際開發(fā)中,少不了使用這三種方法對某一個類型的數(shù)據(jù)進(jìn)行轉(zhuǎn) String 的操作,那么什么情況下使用哪種方法更快捷,以及這些方法使用時的一些注意事項(xiàng)都有哪些呢?來敘述一下這三種方法的使用場景。廢話少說,直接上代碼!

一、基本類型轉(zhuǎn)換

1.toString()

基本類型是沒有 toString() 方法的

2.String.valueOf()

基本類型轉(zhuǎn) String 類型時,推薦使用 String.valueOf() 方法。

可以看到,基本上所有的基本類型都可以使用 String.valueOf() 方法去轉(zhuǎn)換為 String 類型。

3.(String) 強(qiáng)轉(zhuǎn)

一般情況下,不推薦使用強(qiáng)轉(zhuǎn)的方法去將某一類型轉(zhuǎn)換為 String 類型。

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

使用 instanceOf 與不使用 instanceOf 對比:

當(dāng)待轉(zhuǎn)換數(shù)據(jù)的類型為 Integer 時,使用 (String) 方法強(qiáng)轉(zhuǎn)會報錯,所以一般情況下能使用 String.valueOf() 方法進(jìn)行轉(zhuǎn)換的,就不推薦使用 (String) 方法強(qiáng)轉(zhuǎn)。

二、包裝類型轉(zhuǎn)換

1.toString()

包裝類型時可以使用 toString() 方法去成功轉(zhuǎn)換為 String 類型的。

2.String.valueOf()

包裝類型也是可以使用 String.valueOf() 方法去轉(zhuǎn)換為 String 類型的。

3.(String) 強(qiáng)轉(zhuǎn)

包裝類型的強(qiáng)轉(zhuǎn)和基本類型的強(qiáng)轉(zhuǎn)一樣,都會報錯的,這也是各種大佬不使用 (String) 去進(jìn)行強(qiáng)轉(zhuǎn)的原因

三、null 值問題

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

對 null 值進(jìn)行 toString() 轉(zhuǎn)換時,會報空指針異常。

2.String.valueOf() 會轉(zhuǎn)換為 "null" 字符串

注意,不是 null 值,而是 "null" 字符串。

3.(String) 強(qiáng)轉(zhuǎn)成功

注意使用強(qiáng)轉(zhuǎn)的方法去轉(zhuǎn)換 null 值與使用 String.valueOf() 方法去轉(zhuǎn)換 null 的區(qū)別,強(qiáng)轉(zhuǎn)返回 null 值,String.valueOf() 方法會返回 "null" 字符串。

這是因?yàn)?String.valueOf() 的源碼就是這么轉(zhuǎn)換的

總結(jié)一下就是:

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

在這種使用方法中,因?yàn)?java.lang.Object 類里已有 public String toString() 方法,所以 java 對象都可以調(diào)用此方法。但在使用時要注意,必須保證 object 不是 null 值,否則將拋出NullPointerException 空指針異常。采用這種方法時,通常派生類會覆蓋 object 里的 toString() 方法。

2、String.valueOf(),建議使用,返回字符串 "null"

String.valueOf() 不會出現(xiàn)空指針異常,而且是靜態(tài)的方法,直接通過 String 調(diào)用即可,只是有一點(diǎn)需要注意,就是上面提到的,如果為 null,String.valueOf() 返回結(jié)果是字符串 "null",而不是null,這就要求如果需要對String.valueOf() 方法轉(zhuǎn)換之后字符串進(jìn)行判空等邏輯除了里的時候,一定要注意 "null"。

3、(String) 強(qiáng)轉(zhuǎn),不建議使用

(String)是標(biāo)準(zhǔn)的類型轉(zhuǎn)換,將 Object 類型轉(zhuǎn)為 String 類型,使用 (String) 強(qiáng)轉(zhuǎn)時,最好使用 instanceof 做一個類型檢查,以判斷是否可以進(jìn)行強(qiáng)轉(zhuǎn),否則容易拋出 ClassCastException 轉(zhuǎn)換異常。如果確需使用,還請謹(jǐn)慎為好!

到此這篇關(guān)于java中toString()、String.valueOf()、(String) 強(qiáng)轉(zhuǎn)的區(qū)別的文章就介紹到這了,更多相關(guān)toString()、String.valueOf()、(String) 強(qiáng)轉(zhuǎn)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MyBatis-Plus與Druid結(jié)合Dynamic-datasource實(shí)現(xiàn)多數(shù)據(jù)源操作數(shù)據(jù)庫的示例

    MyBatis-Plus與Druid結(jié)合Dynamic-datasource實(shí)現(xiàn)多數(shù)據(jù)源操作數(shù)據(jù)庫的示例

    Dynamic-DataSource 可以和絕大多是連接層插件搭配使用,比如:mybatis,mybatis-plus,hibernate等,本文就來介紹一下MyBatis-Plus與Druid結(jié)合Dynamic-datasource實(shí)現(xiàn)多數(shù)據(jù)源操作數(shù)據(jù)庫的示例,感興趣的可以了解一下
    2023-10-10
  • Java微服務(wù)架構(gòu)中的關(guān)鍵技術(shù)和設(shè)計原則解讀

    Java微服務(wù)架構(gòu)中的關(guān)鍵技術(shù)和設(shè)計原則解讀

    Java是一種面向?qū)ο蟮母呒壘幊陶Z言,具有跨平臺兼容性、自動內(nèi)存管理等特點(diǎn),它支持多線程、異常處理,并擁有豐富的標(biāo)準(zhǔn)庫和強(qiáng)大的社區(qū)生態(tài),微服務(wù)架構(gòu)是將應(yīng)用分解為多個小型服務(wù)的設(shè)計風(fēng)格
    2024-11-11
  • 淺談一段java代碼是如何執(zhí)行的

    淺談一段java代碼是如何執(zhí)行的

    這篇文章主要介紹了淺談一段java代碼是如何執(zhí)行的,小編覺得不錯,下面就一起來了解一下
    2021-04-04
  • 在CentOS上配置Java環(huán)境變量的教程

    在CentOS上配置Java環(huán)境變量的教程

    這篇文章主要介紹了在CentOS上配置Java環(huán)境變量的教程,同時適用于Fedora等其他RedHat系的Linux系統(tǒng),需要的朋友可以參考下
    2015-06-06
  • java如何判斷Date是上午還是下午

    java如何判斷Date是上午還是下午

    文章介紹了三種在Java中判斷Date對象是上午還是下午的方法:使用Calendar類、使用Java 8的java.time包以及使用SimpleDateFormat進(jìn)行格式化輸出,每種方法都有代碼示例和解釋,幫助開發(fā)者根據(jù)具體需求選擇合適的方法
    2025-03-03
  • Java SPI機(jī)制原理與實(shí)戰(zhàn)技巧

    Java SPI機(jī)制原理與實(shí)戰(zhàn)技巧

    這段文章深入解析了JavaSPI機(jī)制原理與實(shí)戰(zhàn),涵蓋基本原理、代碼實(shí)戰(zhàn)及優(yōu)化方案,重點(diǎn)介紹了資源管理、異常處理、日志規(guī)范和單元測試的最佳實(shí)踐,助你寫出高質(zhì)量代碼,感興趣的朋友一起看看吧
    2026-06-06
  • mybatis?<foreach>標(biāo)簽動態(tài)增刪改查方式

    mybatis?<foreach>標(biāo)簽動態(tài)增刪改查方式

    這篇文章主要介紹了mybatis?<foreach>標(biāo)簽動態(tài)增刪改查方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Java實(shí)現(xiàn)定時任務(wù)

    Java實(shí)現(xiàn)定時任務(wù)

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)定時任務(wù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • 部署SpringBoot項(xiàng)目到Linux服務(wù)器數(shù)據(jù)盤的完整流程

    部署SpringBoot項(xiàng)目到Linux服務(wù)器數(shù)據(jù)盤的完整流程

    這篇文章講述了如何在Linux服務(wù)器上掛載數(shù)據(jù)盤并部署SpringBoot項(xiàng)目,具體步驟包括查看磁盤狀態(tài)、分區(qū)與格式化、掛載分區(qū)、配置開機(jī)自動掛載等,以及上傳項(xiàng)目文件、編寫啟動腳本、啟動項(xiàng)目并測試、配置Systemd服務(wù)管理,需要的朋友可以參考下
    2025-11-11
  • MyBatis-Plus自定義SQL的詳細(xì)過程記錄

    MyBatis-Plus自定義SQL的詳細(xì)過程記錄

    Java開發(fā)使用mybatis-plus來執(zhí)行sql操作,往往比mybatis能夠省時省力,下面這篇文章主要給大家介紹了關(guān)于MyBatis-Plus自定義SQL的相關(guān)資料,需要的朋友可以參考下
    2022-02-02

最新評論

竹溪县| 宜昌市| 赤城县| 榕江县| 通榆县| 吉首市| 通城县| 绥江县| 民乐县| 巴马| 达州市| 祁门县| 大宁县| 石家庄市| 微博| 阜新| 镇平县| 威宁| 沈丘县| 凤山县| 洛宁县| 德保县| 东乡族自治县| 凌源市| 普定县| 久治县| 余庆县| 醴陵市| 洪湖市| 北安市| 夏邑县| 莱西市| 临颍县| 革吉县| 台山市| 商河县| 寻甸| 祁阳县| 山东省| 平度市| 武威市|