java泛型约束_JAVA泛型 - 约束与局限性
泛型不能使用基本類型
Pair //Error
Pair // Right
運行時類型查詢只適用于原始類型
虛擬機中的對象總有一個特定的非泛型類型。 因此, 所有的類型查詢只產生原始類型。
if (a instanceof Pair) // Error
if (a instanceof Pair) // Error
Pair p = (Pair) a; // Warning-can only test that a is a Pair
Pair stringPair = . .
Pair employeePair = . .
if (stringPair.getClassO == employeePair.getClassO) // they are equal
不能創建參數化類型的數組
虛擬機在創建參數化類型數組時會擦除泛型
Pair[] table = new Pair[10];
// Error
Pair[] table = (Pair[])
new Pair>[10]; //不安全
ArrayList> //推薦
Varargs警告
在聲明具有模糊類型(比如:泛型)的可變參數的構造函數或方法時,Java編譯器會報unchecked警告。鑒于這些情況,如果程序員斷定聲明的構造函數和方法的主體不會對其varargs參數執行潛在的不安全的操作,可使用@SafeVarargs進行標記,這樣的話,Java編譯器就不會報unchecked警告。
@SuppressWamings("unchecked") 也可以排除警告
不能實例化類型變量
public Pair() { first = new T(); second = new T(); } // Error
官方文檔給出一些實例化方案,不過我并沒有看懂。 //TODO
不能構造泛型數組
public static
總結
以上是生活随笔為你收集整理的java泛型约束_JAVA泛型 - 约束与局限性的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java gui 读取文件夹_java
- 下一篇: java1到100的数组_用java定义