欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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)文章

  • Java中Mono類的一些基本方法和示例代碼

    Java中Mono類的一些基本方法和示例代碼

    在Java編程中,我們經(jīng)常會遇到需要創(chuàng)建單例(singleton)對象的情況,單例模式是一種常見的設(shè)計模式,它保證一個類只有一個實(shí)例,并提供一個全局訪問點(diǎn),這篇文章主要給大家介紹了關(guān)于Java中Mono類的相關(guān)資料,需要的朋友可以參考下
    2024-07-07
  • Java正則表達(dá)式API字符類

    Java正則表達(dá)式API字符類

    這篇文章主要介紹了Java正則表達(dá)式API字符類,Java正則表達(dá)式API也接受預(yù)定義的字符類,下面文章內(nèi)容展開了更多的相關(guān)內(nèi)容介紹,需要的朋友可以參考一下
    2022-06-06
  • Java使用跳轉(zhuǎn)結(jié)構(gòu)實(shí)現(xiàn)隊(duì)列和棧流程詳解

    Java使用跳轉(zhuǎn)結(jié)構(gòu)實(shí)現(xiàn)隊(duì)列和棧流程詳解

    這篇文章主要介紹了Java使用跳轉(zhuǎn)結(jié)構(gòu)實(shí)現(xiàn)隊(duì)列和棧流程,連續(xù)結(jié)構(gòu)和跳轉(zhuǎn)結(jié)構(gòu)是數(shù)據(jù)結(jié)構(gòu)中常見的兩種基本數(shù)據(jù)結(jié)構(gòu),而我們本次的主角棧和隊(duì)列都 既可以使用使用跳轉(zhuǎn)結(jié)構(gòu)實(shí)現(xiàn)也可以使用連續(xù)結(jié)構(gòu)實(shí)現(xiàn)
    2023-04-04
  • Java中字符串截取方法詳解及實(shí)際應(yīng)用小結(jié)

    Java中字符串截取方法詳解及實(shí)際應(yīng)用小結(jié)

    java中截取字符串的常用方法是使用String類的substring方法,本文通過實(shí)例代碼給大家介紹Java中字符串截取方法詳解及實(shí)際應(yīng)用小結(jié),感興趣的朋友跟隨小編一起看看吧
    2024-12-12
  • druid的borrow行為方法源碼解析

    druid的borrow行為方法源碼解析

    這篇文章主要為大家介紹了druid的borrow行為方法源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • SpringBoot系列教程之dubbo和Zookeeper集成方法

    SpringBoot系列教程之dubbo和Zookeeper集成方法

    這篇文章主要介紹了SpringBoot系列教程之dubbo和Zookeeper集成方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • Java使用JDK與Cglib動態(tài)代理技術(shù)統(tǒng)一管理日志記錄

    Java使用JDK與Cglib動態(tài)代理技術(shù)統(tǒng)一管理日志記錄

    這篇文章主要介紹了Java使用JDK與Cglib動態(tài)代理技術(shù)統(tǒng)一管理日志記錄,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • 聊聊finally中的代碼一定會執(zhí)行嗎

    聊聊finally中的代碼一定會執(zhí)行嗎

    通常在面試中,只要是疑問句一般答案都是“否定”的,因?yàn)槿绻恰按_定”和“正?!钡?那面試官就沒有必要再問了嘛,本文想和大家聊聊finally中的代碼一定會執(zhí)行嗎?,感興趣的朋友跟著小編一起來看看吧
    2023-12-12
  • Java異常分類處理拋出捕獲操作詳解

    Java異常分類處理拋出捕獲操作詳解

    異常就是不正常,比如當(dāng)我們身體出現(xiàn)了異常我們會根據(jù)身體情況選擇喝開水、吃藥、看病、等 異常處理方法。 java異常處理機(jī)制是我們java語言使用異常處理機(jī)制為程序提供了錯誤處理的能力,程序出現(xiàn)的錯誤,程序可以安全的退出,以保證程序正常的運(yùn)行等
    2022-09-09
  • Mybatis聯(lián)合查詢的實(shí)現(xiàn)方法

    Mybatis聯(lián)合查詢的實(shí)現(xiàn)方法

    本文主要介紹了 Mybatis聯(lián)合查詢的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01

最新評論