国产探花免费观看_亚洲丰满少妇自慰呻吟_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筆記:

   


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阿坝| 连云港市| 库车县| 蕲春县| 保靖县| 清水河县| 汉寿县| 五寨县| 石河子市| 竹溪县| 聂荣县| 班戈县| 张家口市| 新巴尔虎右旗| 济源市| 讷河市| 台南市| 富阳市| 连平县| 美姑县| 汉沽区| 化德县| 乌拉特中旗| 太仓市| 常德市| 太白县| 石景山区| 翁牛特旗| 霸州市| 大竹县| 乌拉特前旗| 云和县| 宝坻区| 莲花县| 靖远县| 东兴市| 扬中市| 桂阳县| 济源市| 密山市| 两当县|