除非强制使用无界通配符对其进行参数化,否则不允许强制转换为参数化类型。
Box<Integer> integerBox=new Box<Integer>(); Box<Number> numberBox=new Box<Number>(); //编译器错误:无法从 Box<Number> 转换为 Box<Integer> integerBox=(Box<Integer>)numberBox;
要实现相同的目的,可以使用无界通配符。
private static void add(Box<?> box) { Box<Integer> integerBox=(Box<Integer>)box; }
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)