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;
}
廣告