Java學習筆記 泛型

2021-08-17 03:12:47 字數 883 閱讀 4728

一看到泛型就想到一對尖括號?

jdk5以後的jdk的集合中就經常使用,例如collectioncollections

然而jdk5中剛剛出現集合框架的時候,集合框架中的變數都是object,因為系統不知道使用者要使用什麼型別的變數。

自從jdk5後,引入了「引數化型別(parameterized type)」的概念。有點像c++中的模版類,當然c++中也有泛型。

引數化型別(parameterized type):允許程式在建立物件的時候,指定物件所包含的變數型別。

jdk7以及以後在建構函式的尖括號中可以不新增變數型別。

######注意:對應的編譯器也要求是比較新的。早期版本的eclipse就會報錯。

####1、泛型使用的案例

listl= new arraylist();
泛型的本意是在程式執行的時候 動態生成某個型別的子型別。例如listlist的子型別。可以看作在程式執行的時候 把所有的e替換成string型別。

1、 繼承的時候,子類要按照實際的型別進行重寫或者使用

2、

arraylistex2 = new arraylist();

listex1 = new arraylist();

listex2 = new arraylist();

system.err.println(ex1.getclass() == ex2.getclass());//結果是ture

system.err.println(ex2.getclass() == ex3.getclass());//結果是ture

可以看出替換變數後類任然不改變

Java學習筆記 泛型

注 這裡只簡單介紹了一下泛型最基礎的使用,泛型功能很強大,為了趕課程,關於通用型別部分過後補上。別被我的筆記所誤導 課程中的泛型首先是由泛型集合開始入手的。由前邊的兩個集合arraylist和hashmap可以看出,在使用方便的同時也帶來了很多問題。1,效率低下,集合都是object的型別,使用是需...

java 泛型學習筆記

首先我對泛型的理解就是可以把任何object的子類當做類中的型別,下面是對於泛型的基本定義 public class generict public object getfoo 然後對於泛型 可以有兩個型別或者更多 public class generictt public void setfoo1...

JAVA 泛型 學習筆記

首先為了方便下面 的理解,這裡先提一下一些下面會用到的三個物件 person student和worker。person的屬性只有string型別的name和int型別的age,其他就是一些基本的方法 student和worker都是完全繼承person類,都沒有新的屬性 下面開始正題 泛型,字面上...