java 泛型產生,泛型類,泛型方法,泛型接口,泛型通配符,泛型限制符理解學習

一、泛型的產生

爲保證程序的安全性。

泛型指明瞭集合中存儲數據的類型<數據類型>

一會存字符串,一會存int類型,會造成數據的安全性問題。如果指明瞭存儲數據的類型, 就不會出現這種問題了。

所謂的泛型就是在collection<數據類型>=new xxxxx;

泛型就是爲了保證數據的安全。如果沒有泛型那麼就會存儲所有類型。打印時也有不少問題。

安全隱患;

這個就會產生安全隱患。類型轉換異常,Integer類型無法轉換成String類型。因爲String類型和Integer類型根本無關。

2、添加泛型後

二、泛型類

ArrayList<>

三、泛型方法

注意:首先是創建了一個Integer類型的集合對象。添加了兩個Integer類型的數據。目標是要打印出來,但是不能直接調用而array.toString();的目標是將集合中的元素返回一個數組。因此需要用Integer類型的數組來接收,最後將這個數組打印。打印數組使用的是增強for循環。

其中Integer[]數組就屬於泛型方法。因爲它標記了數組的類型Integer。

四、泛型接口。 

1、帶有泛型的接口的格式:

2、實現類有兩種

第一種是:實現類先實現接口,不理會泛型。第二種是實現類在實現接口的同時也指定了數據類型。

3、泛型的好處

總結一下泛型好處:

1、不需要強制性轉換,增強了安全性。

2、由於使用了泛型,可以通過增強for循環來遍歷。

3、引入了泛型,在編譯時就能知道錯誤。

五、泛型通配符

泛型通配符的產生:

創建了兩種容器,ArrayList和HashSet並且存儲的類型還不同。

如果要遍歷這兩個容器的內容,就必須先將兩個集合放入iterator迭代器中

2、如何讓迭代器一次將兩個集合的內容遍歷完呢?這就用到泛型的通配符。

注意:這種方法只適合與遍歷。如果通配符處寫String,那麼set集合會報錯,如果寫Integer那麼array集合會報錯。 

六、泛型是對象如何添加值

泛型是對象,往集合中添加數據時 要用到匿名對象的方式添加,因爲泛型是存什麼寫什麼,寫什麼存什麼。

七、泛型的限定

如果光有泛型的通配符還是不夠安全的。現在有三個集合,需要遍歷的同時可以調用工作方法work()。

如何同時遍歷三個集合呢?如果僅僅是用一個通配符

是不行的,因爲會產生安全問題。即:

這個也能遍歷,但是這個又沒有work()方法,故會報錯。

這就需要限定符來解決這個問題了

即:讓通配符繼承Employee三個對象的父類。那麼String類型就無法再使用。就不能寫了。泛型必須是Employee或者它的子類。

上圖爲限定符的作用域。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章