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运算符

关注微信小程序
程序员编程王-随时随地学编程

扫描二维码
程序员编程王

扫一扫关注最新编程教程