小編給大家分享一下java泛型數(shù)組轉(zhuǎn)換類(lèi)型的示例分析,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)的開(kāi)發(fā),更需要了解用戶(hù),從用戶(hù)角度來(lái)建設(shè)網(wǎng)站,獲得較好的用戶(hù)體驗(yàn)。創(chuàng)新互聯(lián)建站多年互聯(lián)網(wǎng)經(jīng)驗(yàn),見(jiàn)的多,溝通容易、能幫助客戶(hù)提出的運(yùn)營(yíng)建議。作為成都一家網(wǎng)絡(luò)公司,打造的就是網(wǎng)站建設(shè)產(chǎn)品直銷(xiāo)的概念。選擇創(chuàng)新互聯(lián)建站,不只是建站,我們把建站作為產(chǎn)品,不斷的更新、完善,讓每位來(lái)訪(fǎng)用戶(hù)感受到浩方產(chǎn)品的價(jià)值服務(wù)。
Java的基本數(shù)據(jù)類(lèi)型分為:1、整數(shù)類(lèi)型,用來(lái)表示整數(shù)的數(shù)據(jù)類(lèi)型。2、浮點(diǎn)類(lèi)型,用來(lái)表示小數(shù)的數(shù)據(jù)類(lèi)型。3、字符類(lèi)型,字符類(lèi)型的關(guān)鍵字是“char”。4、布爾類(lèi)型,是表示邏輯值的基本數(shù)據(jù)類(lèi)型。
1、轉(zhuǎn)換說(shuō)明
因?yàn)榉盒停?dāng)取得數(shù)組中每個(gè)元素時(shí)People p = peopleGenericArray.get(0),不需要顯式進(jìn)行向下的強(qiáng)制類(lèi)型轉(zhuǎn)換。同樣因?yàn)榉盒停?dāng)獲取數(shù)組對(duì)象時(shí),并不會(huì)明確地向下轉(zhuǎn)換類(lèi)型,但是為什么運(yùn)行時(shí)會(huì)發(fā)生類(lèi)型匹配異常,這是因?yàn)闆](méi)有先進(jìn)行向上類(lèi)型轉(zhuǎn)換??偨Y(jié):在泛型數(shù)組中發(fā)生的強(qiáng)制類(lèi)型轉(zhuǎn)換
2、實(shí)例
package hash; import sort.People; /** * Created with IntelliJ IDEA. * User: ASUS * Date: 14-9-12 * Time: 下午5:12 * To change this template use File | Settings | File Templates. */ public class GenericArray{ private final T[] items; public GenericArray(int size) { items = (T[]) new Object[size]; } public void put(int index, T t) { items[index] = t; } public T get(int index) { return items[index]; } public T[] getItems() { return items; } public static void main(String args[]) { GenericArray peopleGenericArray = new GenericArray (5); peopleGenericArray.put(0, new People(12, "12323")); peopleGenericArray.put(1, new People(12, "12323")); peopleGenericArray.put(2, new People(12, "12323")); peopleGenericArray.put(3, new People(12, "12323")); People p = peopleGenericArray.get(0); System.out.println(p); System.out.println("sddddddddddddddd"); try { People[] peoples = peopleGenericArray.getItems(); //這行代碼會(huì)出現(xiàn)ClassCastException異常 for (People people : peoples) { System.out.println(people); } } catch (Exception e) { e.printStackTrace(); } try { Object[] objects = peopleGenericArray.getItems(); for (Object object : objects) { System.out.println(object); } } catch (Exception e) { e.printStackTrace(); } } }
泛型數(shù)組的類(lèi)型信息會(huì)被擦除,且在運(yùn)行的過(guò)程中數(shù)組的類(lèi)型有且僅有Object[],如果我們強(qiáng)制轉(zhuǎn)換成T[]類(lèi)型的話(huà),雖然在編譯的時(shí)候不會(huì)有異常產(chǎn)生,但是運(yùn)行時(shí)會(huì)有ClassCastException拋出。因?yàn)樵诔绦蜻\(yùn)行過(guò)程中僅存在這Object[]類(lèi)型的數(shù)組,所以類(lèi)型轉(zhuǎn)換過(guò)程中要使用Object[]。。。而不能使用People[],雖然編譯過(guò)程不會(huì)出現(xiàn)錯(cuò)誤。
看完了這篇文章,相信你對(duì)“java泛型數(shù)組轉(zhuǎn)換類(lèi)型的示例分析”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!