java泛型_Java核心知识 基础五 JAVA 泛型
泛型提供了編譯時類型安全檢測機制,該機制允許程序員在編譯時檢測到非法的類型。泛型的本 質是參數化類型,也就是說所操作的數據類型被指定為一個參數。比如我們要寫一個排序方法, 能夠對整型數組、字符串數組甚至其他任何類型的數組進行排序,我們就可以使用 Java 泛型。
1. 泛型方法()
你可以寫一個泛型方法,該方法在調用時可以接收不同類型的參數。根據傳遞給泛型方法的參數 類型,編譯器適當地處理每一個方法調用。
// 泛型方法 printArray
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 {
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 泛型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: object转float_人工智能-Ob
- 下一篇: python文件输出log_Python