您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關java中泛型的實際應用,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
Java泛型
Java泛型是J2 SE1.5中引入的一個新特性,其本質是參數化類型,也就是說所操作的數據類型被指定為一個參數(type parameter)這種參數類型可以用在類、接口和方法的創建中,分別稱為泛型類、泛型接口、泛型方法。
比如我們要寫一個排序方法,能夠對整型數組、字符串數組甚至其他任何類型的數組進行排序,我們就可以使用 Java 泛型。
Java泛型的作用
1.泛型方法
你可以寫一個泛型方法,該方法在調用時可以接收不同類型的參數。根據傳遞給泛型方法的參數類型,編譯器適當地處理每一個方法調用。
例如:
public static < E > void printArray( E[] inputArray ){ for ( E element : inputArray ){ System.out.printf( "%s ", element ); } }
泛型邊界
(1)<? extends T>表示該通配符所代表的類型是 T 類型的子類。
(2)<? super T>表示該通配符所代表的類型是 T 類型的父類。
2.泛型類
泛型類的聲明和非泛型類的聲明類似,除了在類名后面添加了類型參數聲明部分。和泛型方法一樣,泛型類的類型參數聲明部分也包含一個或多個類型參數,參數間用逗號隔開。
一個泛型參數,也被稱為一個類型變量,是用于指定一個泛型類型名稱的標識符。因為他們接受一個或多個參數,這些類被稱為參數化的類或參數化的類型。
例如:
public class Box<T> { private T t; public void add(T t) { this.t = t; } public T get() { return t; } }
3.類型擦除
Java 中的泛型基本上都是在編譯器這個層次來實現的。在生成的 Java 字節代碼中是不包含泛型中的類型信息的。使用泛型的時候加上的類型參數,會被編譯器在編譯的時候去掉。這個過程就稱為類型擦除。
如在代碼中定義的 List和 List等類型,在編譯之后都會變成 List。 JVM 看到的只是 List,而由泛型附加的類型信息對 JVM 來說是不可見的。
類型擦除的基本過程也比較簡單,首先是找到用來替換類型參數的具體類。這個具體類一般是 Object。如果指定了類型參數的上界的話,則使用這個上界。把代碼中的類型參數都替換成具體的類。
4.類型通配符
類型通配符一般是使用?代替具體的類型參數。例如List<?>在邏輯上是List,List等所有List<具體類型實參>的父類。
看完上述內容,你們對java中泛型的實際應用有進一步的了解嗎?如果還想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。