您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關Java中什么是Generics的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
一.什么是Generics?
Generics可以稱之為參數類型(parameterized types),由編譯器來驗證從客戶端將一種類型傳送給某一對象的機制。如Java.util.ArrayList,
編譯器可以用Generics來保證類型安全。
在我們深入了解Generics之前,我們先來看一看當前的java 集合框架(Collection)。在j2SE1.4中所有集合的Root Interface是Collection
Collections example without genericity: Example 1
1 protected void collectionsExample() {
2 ArrayList list = new ArrayList();
3 list.add(new String("test string"));
4 list.add(new Integer(9)); // purposely placed here to create a runtime ClassCastException
5 inspectCollection(list);
6 }
7
8
9 protected void inspectCollection(Collection aCollection) {
10 Iterator i = aCollection.iterator();
11 while (i.hasNext()) {
12 String element = (String) i.next();
13 }
14 }
以上的樣例程序包含的兩個方法,collectionExample方法建立了一個簡單的集合類型ArrayList,并在ArrayList中增加了一個String和一個Integer對象.而在inspecCollection方法中,我們迭代這個ArrayList用String進行Cast。我們看第二個方法,就出現了一個問題,Collection在內部用的是Object,而我們要取出Collection中的對象時,需要進行Cast,那么開發者必需用實際的類型進行Cast,像這種向下造型,編譯器無
法進行檢查,如此一來我們就要冒在代碼在運行拋出ClassCastException的危險。我們看inspecCollection方法,編譯時沒有問題,但在運行時就會拋出ClassCastException異常。所以我們一定要遠離這個重大的運行時錯誤
二.使用Generics
從上一章節中的CassCastException這種異常,我們期望在代碼編譯時就能夠捕捉到,下面我們使用范型修改上一章的樣例程序。
//Example 2
1 protected void collectionsExample() {
2 ArrayList
感謝各位的閱讀!關于“Java中什么是Generics”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。