java核心之泛型(一)初識

2021-06-26 04:48:25 字數 1840 閱讀 1999

——每天的寥寥幾筆,堅持下去,將會是乙份沉甸甸的積累。

1.泛型出現的原因:可以使編寫的**得到重用。

不過,要實現**重用,用object的繼承也可以實現,不過用object會出現各種型別轉換的麻煩,因此出現了泛型程式設計。

2.泛型的使用

(1)泛型類

在類名後加一對<>,<>裡面可以放多個形式型別引數,如e,k,v

public class pair

public t getfirst()

public void setfirst(t first)

public t getsecond()

public void setsecond(t second)

}

(2)泛型方法

在方法返回型別和修飾符中間,用<>括起形式型別引數,然後方法的返回型別和引數中都可用到該形式引數

泛型方法可以定義在泛型類中,也可以定義在一般類中

public static t getelement(t obj)

3.術語介紹

引數化型別			list形式型別引數			e

實際型別引數 string

泛型 list原生態(原始)型別raw type list

有限制型別引數 無限制萬用字元型別 <?>

遞迴型別引數 >

有限制萬用字元型別 <? extends number>

泛型方法 static listaslist(e a)

型別令牌 string.class

4.泛型限定的注意點——有限制型別引數

(1):t和boundingtype可以都是類,則t是子類;兩者也可以都是介面,則t是子介面

(2)乙個型別變數或萬用字元可以有多個限定,如,中間用&連線,而且只能有乙個類,可以有多個介面,如果有類存在,必須寫在第乙個。

5.萬用字元的使用

1、無限定萬用字元   形式<?>

2、上邊界限定萬用字元 形式< ? extends number>

3、下邊界限定萬用字元 形式< ? super number>

舉個例子:

public class pair

public pair(t first, t second)

public t getfirst()

public void setfirst(t first)

public t getsecond()

public void setsecond(t second)

public static void main(string args)

}

所以,有如下原則:

當使用get方法時,盡量用上邊界限定萬用字元

當使用set或add方法時,盡量使用下邊界限定萬用字元

6.泛型的子型別,繼承問題

(1)若b extends a,但是list和list沒有繼承關係。不然list強轉成list後可以隨便新增和b無關的其他a的子類,這樣使得轉換後的list中的型別不統一

(2)arraylist可以轉成list,因為arraylist實現了list介面

(3)list也可以轉成list型別,因為list是最高介面

JAVA核心三(泛型)

泛型的主要目的之一就是用來指定容器要持有什麼型別的物件,而且有編譯器來保證型別的正確性 不在執行時才檢查出來 可以暫時不指定型別,而是稍後再決定具體使用什麼型別,可以使用型別引數,用尖括號括住,放在類名後面。然後在使用這個類的時候,再用實際的型別替代此型別引數。t就是型別引數。一 泛型類 在定義乙個...

Java之泛型程式設計

1.概念 泛型就是引數化型別。泛型的好處是在編譯的時候檢查型別安全,並且所有的強制轉換都是自動和隱式的,提高 的重用率。2.案例 1 先看下面案例 不適用泛型程式設計 list li new arraylist 使用泛型程式設計如下 使用泛型的優點 大型應用時能顯著降低程式的複雜度 泛型為較大的優化...

Java之泛型篇

出處 1 泛型的意義 往小處說,是為了實現型別安全的集合 往大處說,是為了實現模版程式設計的理念 2 為什麼要出現泛型 雖然集合具有長度可擴充 插入刪除方便等強大的特性 但是集合內部可以儲存的物件是型別不安全的 釋義 什麼是型別不安全 因為集合內部可以裝入 取出的元素是object型別 因此任何物件...