国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

泛型(筆記)

2019-11-08 19:31:02
字體:
來源:轉載
供稿:網友
一、為什么要有泛型(Generic)?1. 解決元素存儲的安全性問題2. 解決獲取數據元素時,需要類型強轉的問題3. 泛型,JDK1.5新加入的4. 常用T表示 , T只能是類,不能用基本數據類型填充。(使用泛形時,泛形類型須為引用類型,不能是基本數據類型)   泛型的實例化:           一定要在類名后面指定類型參數的值(類型)。如:           List<String> strList = new ArrayList<String>();           Iterator<Customer> iterator = customers.iterator();5. 靜態方法中不能使用類的泛型。6. 如果泛型類是一個接口或抽象類,則不可創建泛型類的對象(這不是廢話嗎,接口類和抽象類都不能直接創建對象)7. 不能在catch中使用泛型8. 從泛型類派生子類,泛型類型需具體化(例如:在MVC 設計模式中,底層模板BaseAction,BaseService,BaseDao三個抽象泛型類模板,用于被繼承)9. 泛型不存在繼承關系。10.一個很有用的方法: void drawAll(List<? extends Shape> shapes){//..} 方法中的參數可以接收Shape 的子類11. 一個典型的錯誤:    static void fromArrayToCollection(Object[] a,Collection<?> c){         for(Object o : a){               c.add(o);//編譯錯誤           }    }        正確:(這樣就能遍歷任何任何集合)    static void fromArrayToCollection(T[] a,Collection<T> c){         for(Object o : a){               c.add(o);//正確           }    }二、泛型-深入    注意:泛型是提供給javac編譯器使用的,它用于限定集合的輸入類型,讓編譯器在源代碼級別上,即擋住向集合中插入非法數據。但編譯器編譯帶有泛形的集合時,會去掉“類型”信息,使程序運行效率不受到影響,這個過程稱之為“擦除”

          由于編譯生成的字節碼會去掉泛型的類型信息,所以只要能跳過編譯器(沒有語法錯誤),就可以往某個泛型集合中加入其他類型的數據。使用反射測試結果。

    以下是PPT筆記:

   


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 临安市| 临高县| 南召县| 睢宁县| 乾安县| 岐山县| 江山市| 东阳市| 宜良县| 固阳县| 淮南市| 虹口区| 靖边县| 吐鲁番市| 西华县| 无为县| 清苑县| 巍山| 海口市| 青海省| 会同县| 鄂尔多斯市| 五大连池市| 海伦市| 县级市| 青浦区| 同江市| 绥宁县| 砚山县| 信丰县| 新蔡县| 漳平市| 蕉岭县| 潼关县| 元谋县| 廊坊市| 安宁市| 威信县| 合阳县| 海口市| 涞水县|