Java泛型 不能强制类型转换
除非通过无限定通配符参数化,否则不允许强制转换为参数化类型。如下代码:
Box<Integer> integerBox = new Box<Integer>();
Box<Number> numberBox = new Box<Number>();
//编译出错: Cannot cast from Box<Number> to Box<Integer>
integerBox = (Box<Integer>)numberBox;
为了达到同样的目的,可以使用无限定通配符。
private static void add(Box<?> box) {
Box<Integer> integerBox = (Box<Integer>)box;
}
热门文章
优秀文章