首頁 > Java > Java入門 > 主體

關於java泛型的詳細介紹

王林
發布: 2019-11-27 16:30:49
轉載
1916 人瀏覽過

關於java泛型的詳細介紹

Java泛型

泛型提供了編譯時類型安全性偵測機制,該機制允許程式設計師在編譯時偵測到非法的類型。泛型的本質是參數化類型,也就是說所操作的資料類型被指定為一個參數。 

例如我們要寫一個排序方法,能夠對整數陣列、字串陣列甚至其他任何類型的陣列進行排序,我們就可以使用 Java 泛型。

免費線上學習影片推薦:java線上影片

1.泛型方法

你可以寫泛型方法,該方法在呼叫時可以接收不同類型的參數。根據傳遞給泛型方法的參數類型,編譯器適當地處理每一個方法呼叫。

例如:

public static < E > void printArray( E[] inputArray ){
	for ( E element : inputArray ){
		System.out.printf( "%s ", element );
	}
}
登入後複製

泛型邊界

(1)表示該通配符所代表的類型是T 類型的子類別。

(2)表示該通配符所代表的類型是 T 類型的父類別。

2.泛型類別

泛型類別的宣告和非泛型類別的宣告類似,除了在類別名稱後面加入了型別參數宣告部分。和泛型方法一樣,泛型類別的型別參數宣告部分也包含一個或多個型別參數,參數間以逗號隔開。

一個泛型參數,也被稱為一個類型變量,是用來指定一個泛型類型名稱的識別碼。因為他們接受一個或多個參數,這些類別被稱為參數化的類別或參數化的類型。

例如:

public class Box<T> {
private T t;
public void add(T t) {
this.t = t;
}
public T get() {
return t;
}
}
登入後複製

3.型別通配符?

型別通配符一般是使用?來取代特定的型別參數。例如List在邏輯上是List,List等所有List<具體型別實參>的父類別。

4.類型擦除

Java 中的泛型基本上都是在編譯器這個層次來實現的。在產生的 Java 位元組程式碼中是不包含泛型中的型別資訊的。使用泛型的時候加上的型別參數,會被編譯器在編譯的時候去掉。這個過程就稱為類型擦除。

如程式碼中定義的 List和 List等類型,在編譯之後都會變成 List。 JVM 看到的只是 List,而由泛型附加的類型資訊對 JVM 來說是不可見的。

類型擦除的基本過程也比較簡單,首先是找到用來取代類型參數的具體類別。這個具體類別一般是 Object。如果指定了類型參數的上界的話,則使用這個上界。把程式碼中的類型參數都替換成具體的類別。

java相關文章教學:java語言入門

#

以上是關於java泛型的詳細介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:csdn.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板