溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

toString(),String.valueOf和(String)強(qiáng)轉(zhuǎn)的用法

發(fā)布時(shí)間:2021-06-18 14:06:59 來(lái)源:億速云 閱讀:104 作者:chen 欄目:開(kāi)發(fā)技術(shù)

本篇內(nèi)容主要講解“toString(),String.valueOf和(String)強(qiáng)轉(zhuǎn)的用法”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“toString(),String.valueOf和(String)強(qiáng)轉(zhuǎn)的用法”吧!

目錄
  • 一、前言

  • 二、代碼實(shí)例

    •  1、基本類(lèi)型

    • 2、封裝類(lèi)型

    • 3、null值問(wèn)題

  • 三、源碼分析

    • 1、toString()

  • 四、總結(jié)

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

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

    • 3、(String)強(qiáng)轉(zhuǎn),不推薦使用

一、前言

相信大家在日常開(kāi)發(fā)中這三種方法用到的應(yīng)該很多,尤其是前兩種,經(jīng)常在開(kāi)發(fā)的時(shí)候,隨心所欲,想用哪個(gè)用哪個(gè),既然存在,那就應(yīng)該有它存在的道理,那么什么情況下用哪個(gè)呢?

二、代碼實(shí)例

 1、基本類(lèi)型

(1)基本類(lèi)型沒(méi)有toString()方法

toString(),String.valueOf和(String)強(qiáng)轉(zhuǎn)的用法

(2)推薦使用

toString(),String.valueOf和(String)強(qiáng)轉(zhuǎn)的用法

(3)無(wú)法強(qiáng)轉(zhuǎn)

toString(),String.valueOf和(String)強(qiáng)轉(zhuǎn)的用法

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

toString(),String.valueOf和(String)強(qiáng)轉(zhuǎn)的用法

instanceof判斷

toString(),String.valueOf和(String)強(qiáng)轉(zhuǎn)的用法

2、封裝類(lèi)型

(1)toString ok

toString(),String.valueOf和(String)強(qiáng)轉(zhuǎn)的用法

(2)String.valueOf()

自然也是可以的。

(3)封裝類(lèi)型也無(wú)法強(qiáng)轉(zhuǎn)

toString(),String.valueOf和(String)強(qiáng)轉(zhuǎn)的用法

3、null值問(wèn)題

(1)toString()報(bào)空指針異常

toString(),String.valueOf和(String)強(qiáng)轉(zhuǎn)的用法

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

toString(),String.valueOf和(String)強(qiáng)轉(zhuǎn)的用法

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

toString(),String.valueOf和(String)強(qiáng)轉(zhuǎn)的用法

三、源碼分析

1、toString()

toString(),String.valueOf和(String)強(qiáng)轉(zhuǎn)的用法

toString(),String.valueOf和(String)強(qiáng)轉(zhuǎn)的用法

2、String.valueOf()

toString(),String.valueOf和(String)強(qiáng)轉(zhuǎn)的用法

String.valueOf()比toString多了一個(gè)非空判斷。

四、總結(jié)

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

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

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

String.valueOf()方法是小編推薦使用的,因?yàn)樗粫?huì)出現(xiàn)空指針異常,而且是靜態(tài)的方法,直接通過(guò)String調(diào)用即可,只是有一點(diǎn)需要注意,就是上面提到的,如果為null,String.valueOf()返回結(jié)果是字符串“null”。而不是null。

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

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

到此,相信大家對(duì)“toString(),String.valueOf和(String)強(qiáng)轉(zhuǎn)的用法”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢(xún),關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI