泛型

  • 1.1 引言
  • 1.2 動機和優點
  • 1.3 定義泛型類和接口
  • 1.4 泛型方法
  • 1.5 【示例】對一個對象數組進行排序
  • 1.6 原始泛型和向后兼容
  • 1.7 通配泛型
  • 1.8 消除泛型和對泛型的限制
  • 1.9 【示例】泛型矩陣類

1.1 引言

泛型可以使我們在編譯時就檢測出錯誤,而不必等到運行才檢出錯誤。如果視圖使用一個不相容的對象,編譯器會檢測出這個錯誤。

1.2 動機和優點

從1.5開始允許定義泛型類泛型接口泛型方法,并且在API中修改了java.lang.Comparable接口。
<T>表示泛型類型,隨后用一個實際具體類型來替換它,替換的類型稱為泛型實例化。
泛型類型是引用類型,不能用基本類型來實例化,使用包裝類來替換。
優點:

  1. 存的時候,編譯器會提示類型不匹配
  2. 取得時候,無需類型轉換,直接輸入index可以查找
        // 這里不會出錯!
        ArrayList date = new ArrayList<>();
        date.add(new Date());
        date.add(new String(" string"));
        System.out.println((String)date.get(1) + date);// 這里如果沒使用泛型,在輸出的時候需要強制類型轉換
        // 這里編譯會出錯!
        ArrayList<Date> dateArray = new ArrayList<>();
        dateArray.add(new Date());
        dateArray.add("string");// 錯誤的地方

1.3 定義泛型類和接口

使用類來創建對象,或者使用類或接口來聲明引用變量時,需要指明具體的類型

1.4 泛型方法

1.5 【示例】對一個對象數組進行排序

1.6 原始泛型和向后兼容

1.7 通配泛型

1.8 消除泛型和對泛型的限制

1.9 【示例】泛型矩陣類

【引用】
Java語言程序設計(進階篇) ---- 機械工業出版社

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • object 變量可指向任何類的實例,這讓你能夠創建可對任何數據類型進程處理的類。然而,這種方法存在幾個嚴重的問題...
    CarlDonitz閱讀 934評論 0 5
  • ??在Effective中講到泛型之處提到了一個概念,類型擦除器,這是什么呢?接下來我們跟隨這篇文章探索類型擦除的...
    凌云_00閱讀 2,158評論 0 8
  • 引言:泛型一直是困擾自己的一個難題,但是泛型有時一個面試時老生常談的問題;今天作者就通過查閱相關資料簡單談談自己對...
    cp_insist閱讀 1,861評論 0 4
  • 梨花雨后煙輕,孤影繞回屏。 春風夢里,青梅錯嗅,愛恨難明。 不忍深情皆入酒。趁如今、夏月初升, 青絲未老,天涯無盡...
    殷強里斯閱讀 120評論 0 1
  • 昨晚12月24號平安夜,對我來說又是一個平淡無奇的一天,昏昏沉沉是腦袋,下午去游個泳,回來情緒被同事影響什么事情都...
    孤島101閱讀 122評論 0 0