java中的強(qiáng)制類(lèi)型轉(zhuǎn)換
用(String)做強(qiáng)制類(lèi)型轉(zhuǎn)換和用String.valueOf()區(qū)別在于:
String 就是直接強(qiáng)制轉(zhuǎn)化成String型的字符串,且有優(yōu)先級(jí)限制,像int i=123;不能String s=(String)i。
而String.valueOf()里面的參數(shù)轉(zhuǎn)換可以是double、long、char[] 、long等等,沒(méi)限制,所以String s=String.valueOf(i)。
toString()方法返回的是這個(gè)對(duì)象的字符串表示,就像是這個(gè)對(duì)象的名字一樣,任何對(duì)象都可以有自己的名字,你可以重寫(xiě)其toString()方法,給其賦予任意的名字。
但是調(diào)用toString()方法的對(duì)象不能為 null,否則會(huì)拋出異常:java.lang.NullPointerException。
例子如下:
擴(kuò)展資料:
java中強(qiáng)制類(lèi)型轉(zhuǎn)換
在Java中強(qiáng)制類(lèi)型轉(zhuǎn)換分為基本數(shù)據(jù)類(lèi)型和引用數(shù)據(jù)類(lèi)型兩種,這里我們討論的后者,也就是引用數(shù)據(jù)類(lèi)型的強(qiáng)制類(lèi)型轉(zhuǎn)換。
在Java中由于繼承和向上轉(zhuǎn)型,子類(lèi)可以非常自然地轉(zhuǎn)換成父類(lèi),但是父類(lèi)轉(zhuǎn)換成子類(lèi)則需要強(qiáng)制轉(zhuǎn)換。
因?yàn)樽宇?lèi)擁有比父類(lèi)更多的屬性、更強(qiáng)的功能,所以父類(lèi)轉(zhuǎn)換為子類(lèi)需要強(qiáng)制。那么,是不是只要是父類(lèi)轉(zhuǎn)換為子類(lèi)就會(huì)成功呢?其實(shí)不然,他們之間的強(qiáng)制類(lèi)型轉(zhuǎn)換是有條件的。
當(dāng)我們用一個(gè)類(lèi)型的構(gòu)造器構(gòu)造出一個(gè)對(duì)象時(shí),這個(gè)對(duì)象的類(lèi)型就已經(jīng)確定的,也就說(shuō)它的本質(zhì)是不會(huì)再發(fā)生變化了。
在Java中我們可以通過(guò)繼承、向上轉(zhuǎn)型的關(guān)系使用父類(lèi)類(lèi)型來(lái)引用它,這個(gè)時(shí)候我們是使用功能較弱的類(lèi)型引用功能較強(qiáng)的對(duì)象,這是可行的。但是將功能較弱的類(lèi)型強(qiáng)制轉(zhuǎn)功能較強(qiáng)的對(duì)象時(shí),就不一定可以行了。
舉個(gè)例子來(lái)說(shuō)明。比如系統(tǒng)中存在Father、Son兩個(gè)對(duì)象。首先我們先構(gòu)造一個(gè)Son對(duì)象,然后用一個(gè)Father類(lèi)型變量引用它:
Father father = new Son();
在這里Son 對(duì)象實(shí)例被向上轉(zhuǎn)型為father了,但是請(qǐng)注意這個(gè)Son對(duì)象實(shí)例在內(nèi)存中的本質(zhì)還是Son類(lèi)型的,只不過(guò)它的能力臨時(shí)被消弱了而已,如果我們想變強(qiáng)怎么辦?將其對(duì)象類(lèi)型還原!
Son son = (Son)father;
這條語(yǔ)句是可行的,其實(shí)father引用仍然是Father類(lèi)型的,只不過(guò)是將它的能力加強(qiáng)了,將其加強(qiáng)后轉(zhuǎn)交給son引用了,Son對(duì)象實(shí)例在son的變量的引用下,恢復(fù)真身,可以使用全部功能了。
前面提到父類(lèi)強(qiáng)制轉(zhuǎn)換成子類(lèi)并不是總是成功,那么在什么情況下它會(huì)失效呢?
當(dāng)引用類(lèi)型的真實(shí)身份是父類(lèi)本身的類(lèi)型時(shí),強(qiáng)制類(lèi)型轉(zhuǎn)換就會(huì)產(chǎn)生錯(cuò)誤。例如:
Father father = new Father();
Son son = (Son) father;
這個(gè)系統(tǒng)會(huì)拋出ClassCastException異常信息。
所以編譯器在編譯時(shí)只會(huì)檢查類(lèi)型之間是否存在繼承關(guān)系,有則通過(guò);而在運(yùn)行時(shí)就會(huì)檢查它的真實(shí)類(lèi)型,是則通過(guò),否則拋出ClassCastException異常。
所以在繼承中,子類(lèi)可以自動(dòng)轉(zhuǎn)型為父類(lèi),但是父類(lèi)強(qiáng)制轉(zhuǎn)換為子類(lèi)時(shí)只有當(dāng)引用類(lèi)型真正的身份為子類(lèi)時(shí)才會(huì)強(qiáng)制轉(zhuǎn)換成功,否則失敗
求Java SE Development Kit8(jdk8)下載32\/64位 8u144
在Java 8中,Base64編碼成為了Java類(lèi)庫(kù)的標(biāo)準(zhǔn)。Base64類(lèi)同時(shí)還提供了對(duì)URL、MIME友好的編碼器與解碼器。十一、除了這十大新特性之外,還有另外的一些新特性:1、更好的類(lèi)型推測(cè)機(jī)制:Java 8在類(lèi)型推測(cè)方面有了很大的提高,這就使代碼更整潔,不需要太多的強(qiáng)制類(lèi)型轉(zhuǎn)換了。2、編譯器優(yōu)化:Java 8將方法...
Java沒(méi)有虛擬機(jī)什么都干不了,為什么還有人用呢?
很顯然java的模式其實(shí)很大程度上模擬了dll的實(shí)現(xiàn),但是dll的話只能在windows平臺(tái)下運(yùn)行.java只能在jvm上運(yùn)行.原理是一樣不知道您能不能理解,要知道sun也是做操作系統(tǒng)的 只是沒(méi)有在市場(chǎng)中占到領(lǐng)導(dǎo)位置,所以退到了二線來(lái)做java虛擬機(jī).但是發(fā)現(xiàn)這個(gè)很有遠(yuǎn)景,所以微軟也改寫(xiě)了dll的規(guī)范 提出了.net的構(gòu)思,在....
玩AVA(戰(zhàn)地之王)上YY玩游戲就死機(jī),單獨(dú)上YY或游戲都沒(méi)問(wèn)題,求高手指教...
當(dāng)隊(duì)長(zhǎng)的玩家退出游戲,未來(lái)的船長(zhǎng)最高水平的的玩家留在游戲中。 槍械改造 一個(gè)玩家在玩家自定義的槍支戰(zhàn)地之王“的主要武器為6份自定義轉(zhuǎn)換。但主要的武器必須具有RIS系統(tǒng)(軌道接口連接系統(tǒng)),以改造,但只有特定的槍支RIS系統(tǒng)可以組裝,但是槍支的類(lèi)型占大多數(shù)的游戲,讓玩家可以完整的體驗(yàn)武器改造系統(tǒng)。一個(gè)部分的改造...
ava的大方向是什么
ava的大方向就是j2eej2ee不僅僅是socket編程,具體包括13中核心技術(shù)J2EE的核心API與組J2EE平臺(tái)由一整套服務(wù)(Services)、應(yīng)用程序接口(APIs)和協(xié)議構(gòu)成,它對(duì)開(kāi)發(fā)基于Web的多層應(yīng)用提供了功能支持,下面對(duì)J2EE中的13種技術(shù)規(guī)范進(jìn)行簡(jiǎn)單的描述(限于篇幅,這里只能進(jìn)行簡(jiǎn)單的描述):方法\/步驟 1.JDBC(Java...
Spring +Hibernate整合后SQL 出現(xiàn)ava.lang.ClassCastException: 異常_百...
ClassCastException類(lèi)型轉(zhuǎn)換異常,但是你說(shuō)能在jsp頁(yè)面執(zhí)行說(shuō)明轉(zhuǎn)換是沒(méi)有問(wèn)題,那就應(yīng)該是2個(gè)對(duì)象在加載時(shí)使用了不同的 ClassLoader,應(yīng)該是。
AJA HD10AVA重要參數(shù)
該設(shè)備的接口類(lèi)型極為豐富,特別強(qiáng)調(diào)了視頻輸入部分,它配備了高清分量YPbPr接口,符合SMPT標(biāo)準(zhǔn),確保了信號(hào)的高質(zhì)量輸入。此外,它還支持SDI視頻輸入格式,這在現(xiàn)代視頻處理中是非常常見(jiàn)的接口。在音頻\/視頻處理上,AJA HD10AVA表現(xiàn)出色,具備高品質(zhì)的SD\/HD音頻\/視頻A\/D轉(zhuǎn)換功能,這確保了信號(hào)在轉(zhuǎn)換過(guò)程...
AVA臺(tái)服客戶(hù)端
當(dāng)隊(duì)長(zhǎng)的玩家退出游戲的最高水平的球員,在未來(lái)的隊(duì)長(zhǎng)留在游戲中。 槍械改造 一個(gè)玩家在玩家的自定義槍支戰(zhàn)地之王“6個(gè)部分的主要武器自定義轉(zhuǎn)換的主要武器,但必須有RIS系統(tǒng)(導(dǎo)軌界面連接系統(tǒng)),以改造,但只有特定的槍支RIS系統(tǒng)可以進(jìn)行組裝,但類(lèi)型的槍支占大多數(shù)的游戲,讓玩家可以完整的體驗(yàn)武器改造系統(tǒng)改造的一...
求一個(gè)AVA體驗(yàn)服1198的升級(jí)補(bǔ)丁名字是AVA_T_Client_patch_Ver.1198_11...
最高退出游戲的玩家級(jí)別的球員,在未來(lái)的隊(duì)長(zhǎng),當(dāng)隊(duì)長(zhǎng)留在游戲中。 槍械改造 一個(gè)球員在玩家自定的槍支戰(zhàn)地之王“的六個(gè)部分的主要武器自定義轉(zhuǎn)換的主要武器,但必須RIS系統(tǒng)(鐵路連接系統(tǒng)接口),去改變,但是只有特定的槍支RIS系統(tǒng)可以組裝,但槍支的類(lèi)型占大多數(shù)的游戲,讓玩家可以完成系統(tǒng)改造的經(jīng)驗(yàn),武器改造的一部分,...
愛(ài)唯偵察發(fā)布器AVA的逃脫峽谷中的偵查器發(fā)射裝置
1,AVA的逃脫峽谷中的偵查器發(fā)射裝置你打偵察發(fā)射器的任何部位都可以把它消滅,不過(guò)鑒于為了不被飛盤(pán)燒到,建議呆在石頭后面點(diǎn)紅點(diǎn)打右邊那個(gè)紅圈2,這是哪部動(dòng)畫(huà)片里的不絕如縷的意思簧占泥 6 h 6 v 、 c o m對(duì)于此問(wèn)題應(yīng)該首先檢查供電方面的原因,然后檢查信號(hào)線路方面的原因。1、先用萬(wàn)用表測(cè)量鍵盤(pán)電路中...
騰訊tps騰訊游戲的TP系統(tǒng)怎麼關(guān)啊
3,中國(guó)都有那些fps網(wǎng)游全球使命是TPS游戲,FPS游戲有CS、CF、熱血戰(zhàn)隊(duì)、特種部隊(duì)、AVA、MKZ軍魂、狼隊(duì)等,不過(guò)TPS會(huì)取代FPS的,2012會(huì)出現(xiàn)很多TPS游戲全球使命 4,騰訊TM是什么啊騰訊TM 是Tencent Messenger的簡(jiǎn)稱(chēng),是騰訊公司推出的一款面向個(gè)人的即時(shí)通訊軟件,較側(cè)重在辦公環(huán)境中使用。騰訊TM 是Tencent Messenger的簡(jiǎn)稱(chēng),...
相關(guān)評(píng)說(shuō):
清遠(yuǎn)市透老: ______ 高精度賦給低精度要強(qiáng)制轉(zhuǎn)換,反之不用. 比如: double d=3.444d; float f=2.222f; f=d;//錯(cuò)誤,沒(méi)加強(qiáng)制轉(zhuǎn)換符 f=(float)d;//正確 d=f;//正確,低精度賦給高精度
清遠(yuǎn)市透老: ______ 我們一般把java類(lèi)型分為編譯時(shí)類(lèi)型與運(yùn)行時(shí)類(lèi)型.java程序運(yùn)行后,對(duì)象的類(lèi)型就不會(huì)發(fā)生改變.而強(qiáng)制類(lèi)型轉(zhuǎn)換只不過(guò)是用某種類(lèi)型去引用內(nèi)存中的實(shí)體,這種類(lèi)型只是編譯時(shí)類(lèi)型,與運(yùn)行后的實(shí)體并沒(méi)有聯(lián)系
清遠(yuǎn)市透老: ______ 強(qiáng)制類(lèi)型轉(zhuǎn)換:向下轉(zhuǎn)換:double d = 12.24; int i = (int)d; System.out.println(i);輸出:12向上轉(zhuǎn)換:byte b = 23; float f = (float) b; System.out.println(f);輸出:23.0向下轉(zhuǎn)換回丟失精度,向上轉(zhuǎn)換不會(huì).
清遠(yuǎn)市透老: ______ 你試試行不行 public static void main(String[] args) { List data = new ArrayList(); data.add("a"); try { castClas(data, "java.util.List"); } catch (ClassNotFoundException e) { e.printStackTrace(); } } public static Object castClas(Object obj, ...
清遠(yuǎn)市透老: ______ 應(yīng)該對(duì)你有幫助的!強(qiáng)制類(lèi)型轉(zhuǎn)換是基于可以轉(zhuǎn)換過(guò)去,就是說(shuō)圓和正方形可以轉(zhuǎn)化為圖形一樣,前兩者必須是個(gè)圖形,只是不確定是什么圖形故而強(qiáng)轉(zhuǎn),但是要將圓強(qiáng)轉(zhuǎn)為人類(lèi)..那不開(kāi)開(kāi)開(kāi)開(kāi)開(kāi)開(kāi)...玩笑么?呵呵java中基礎(chǔ)類(lèi)型有8中,如下...
清遠(yuǎn)市透老: ______ java中 int類(lèi)型占4個(gè)字節(jié),byte類(lèi)型占1個(gè)字節(jié),266的16進(jìn)制表示為0x010A,轉(zhuǎn)換為byte時(shí),取其最尾部那個(gè)字節(jié)的數(shù)值也就是 b = 0x0A,十進(jìn)制表示就是10.用公式表示就是 b = (a & 0xff)
清遠(yuǎn)市透老: ______ 表示強(qiáng)制轉(zhuǎn)換類(lèi)型.學(xué)點(diǎn)強(qiáng)制轉(zhuǎn)換的知識(shí)吧 比如: 1.基本類(lèi)型: int a=0; float a=8.2//error,這個(gè)不能被編譯通過(guò) //我們這樣寫(xiě)就可以了 float a=(float)8.2;//把double 型的強(qiáng)制轉(zhuǎn)換為float //也可以這樣寫(xiě)的float a=8.2f 2.引用類(lèi)型: 一個(gè)超類(lèi)能做的東...
清遠(yuǎn)市透老: ______ Java語(yǔ)言是一種強(qiáng)類(lèi)型的語(yǔ)言.強(qiáng)類(lèi)型的語(yǔ)言有以下幾個(gè)要求: l 變量或常量必須有類(lèi)型 要求聲明變量或常量時(shí)必須聲明類(lèi)型,而且只能在聲明以后才能使用. l 賦值時(shí)類(lèi)型必須一致 值的類(lèi)型必須和變量或常量的類(lèi)型完全一致. l 運(yùn)算時(shí)類(lèi)型必...
清遠(yuǎn)市透老: ______ 類(lèi)型強(qiáng)制轉(zhuǎn)換: 1. 因?yàn)镴ava中多態(tài)機(jī)制決定子類(lèi)可以安全的以父類(lèi)存在,所以有時(shí)候?yàn)榱吮WC參數(shù)的多樣性,我們會(huì)把一部分類(lèi)型的對(duì)象轉(zhuǎn)換為Object型,接收時(shí)候再按照需求進(jìn)行轉(zhuǎn)型、使用.如:可以傳入多種類(lèi)型參數(shù)的方法.12345678 ...
清遠(yuǎn)市透老: ______ JAVA 基礎(chǔ)還不太熟啊 呵呵 首先 對(duì)強(qiáng)制轉(zhuǎn)換的概念不清 然后 就是對(duì)IO包里面核心類(lèi)不太熟悉 強(qiáng)制類(lèi)型轉(zhuǎn)換 并不是想怎么轉(zhuǎn)都行,除開(kāi)基本類(lèi)型 ,轉(zhuǎn)換必須 滿(mǎn)足IS-A的關(guān)系 比如 一個(gè)動(dòng)物類(lèi) 指向個(gè) '馬'類(lèi) 實(shí)例 馬 is-a 動(dòng)物 可以轉(zhuǎn)換(此時(shí)動(dòng)物類(lèi)可以強(qiáng)制轉(zhuǎn)換成 馬) TextField類(lèi) is-a StringBuffer ?? 這顯然不成立 至于IO的 API 就靠自己多多熟悉下啦 樓上的朋友 已經(jīng)指出錯(cuò)誤 令狐小蔥□ 說(shuō)得很清楚了 我就不重復(fù)啦