搜尋
首頁JavaJava入門關於java泛型的詳細介紹

關於java泛型的詳細介紹

Nov 27, 2019 pm 04:30 PM
java泛型

關於java泛型的詳細介紹

Java泛型

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

例如我們要寫一個排序方法,能夠對整數陣列、字串陣列甚至其他任何類型的陣列進行排序,我們就可以使用 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.型別通配符?

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

4.類型擦除

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

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

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

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

#

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

陳述
本文轉載於:CSDN。如有侵權,請聯絡admin@php.cn刪除

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境