Java泛型不能轉換類型

除非由無界通配符進行參數化,否則不允許轉換為參數化類型。

Box<Integer> integerBox = new Box<Integer>();
Box<Number> numberBox = new Box<Number>();
//Compiler Error: Cannot cast from Box<Number> to Box<Integer>,下麵用法是錯誤的

integerBox = (Box<Integer>)numberBox;

為了實現上面功能轉換功能,可以使用無界通配符。

private static void add(Box<?> box){
   Box<Integer> integerBox = (Box<Integer>)box;
}

上一篇: Java泛型不能使用靜態域 下一篇: Java泛型不能使用instanceof運算符