北京北大青鳥學(xué)校講解Java泛型之:什么是泛型(一)

      北京北大青鳥學(xué)校學(xué)術(shù)部老師講解:在之后的幾篇文章中,我們將陸續(xù)為大家講解一些關(guān)于Java泛型的內(nèi)容。今天,北京北大青鳥學(xué)校丁老師先給大家講解一下泛型的基礎(chǔ)知識(shí):什么是泛型?
       
      北京北大青鳥學(xué)校丁老師:泛型(Generic type 或者 generics)是對(duì) Java 語言的類型系統(tǒng)的一種擴(kuò)展,以支持創(chuàng)建可以按類型進(jìn)行參數(shù)化的類。可以把類型參數(shù)看作是使用參數(shù)化類型時(shí)指定的類型的一個(gè)占位符,就像方法的形式參數(shù)是運(yùn)行時(shí)傳遞的值的占位符一樣。

      可以在集合框架(Collection framework)中看到泛型的動(dòng)機(jī)。例如,Map 類允許您向一個(gè) Map 添加任意類的對(duì)象,即使最常見的情況是在給定映射(map)中保存某個(gè)特定類型(比如 String)的對(duì)象。

      因?yàn)?Map.get() 被定義為返回 Object,所以一般必須將 Map.get() 的結(jié)果強(qiáng)制類型轉(zhuǎn)換為期望的類型,如下面的代碼所示:
      Map m = new HashMap();
      m.put("key", "blarg");
      String s = (String) m.get("key");

      北京北大青鳥學(xué)校提示:要讓程序通過編譯,必須將 get() 的結(jié)果強(qiáng)制類型轉(zhuǎn)換為 String,并且希望結(jié)果真的是一個(gè) String。但是有可能某人已經(jīng)在該映射中保存了不是 String 的東西,這樣的話,上面的代碼將會(huì)拋出 ClassCastException。

      理想情況下,您可能會(huì)得出這樣一個(gè)觀點(diǎn),即 m 是一個(gè) Map,它將 String 鍵映射到 String 值。這可以讓您消除代碼中的強(qiáng)制類型轉(zhuǎn)換,同時(shí)獲得一個(gè)附加的類型檢查層,該檢查層可以防止有人將錯(cuò)誤類型的鍵或值保存在集合中。這就是泛型所做的工作。
      北京北大青鳥學(xué)校提供,未完待續(xù))

       

      北大青鳥網(wǎng)上報(bào)名
      北大青鳥招生簡(jiǎn)章
      主站蜘蛛池模板: 中文字幕亚洲一区二区三区| 一区二区高清视频在线观看| 国产不卡视频一区二区三区| 亚洲综合一区无码精品| 97久久精品午夜一区二区| 美女AV一区二区三区| 国内精品一区二区三区在线观看 | 色窝窝免费一区二区三区 | 海角国精产品一区一区三区糖心| 国产波霸爆乳一区二区| 精品天海翼一区二区| 国产成人精品一区二区A片带套| 人妻AV一区二区三区精品| 国产AV一区二区三区传媒| 看电影来5566一区.二区| 国产日韩一区二区三区在线观看| 国产一区二区三区在线看片| 无码人妻精品一区二区三区9厂| 国产乱码精品一区二区三区四川人| 精品国产一区二区三区麻豆| 国产99视频精品一区| 国产乱码一区二区三区四 | 一区二区三区在线|欧| 天堂资源中文最新版在线一区| 三上悠亚国产精品一区| 国产一区二区内射最近更新| 久久久91精品国产一区二区三区| 亚洲av不卡一区二区三区| 中文字幕精品一区影音先锋| 亚洲性无码一区二区三区| 成人区人妻精品一区二区不卡| 国产精品无码一区二区三区免费| 国产成人一区二区三区免费视频| 福利一区二区视频| 日韩免费观看一区| 中文字幕无码不卡一区二区三区| 日韩在线视频一区二区三区| 国产福利电影一区二区三区久久久久成人精品综合 | 国产免费av一区二区三区| 一区二区免费国产在线观看| 任你躁国产自任一区二区三区|