Java 泛型无转换

创建于 2024-12-02 / 32
字体: [默认] [大] [更大]

除非使用无界通配符参数化,否则不允许转换为参数化类型。

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


0 人点赞过