Java泛型不能使用数组

不允许使用参数化类型的数组。如下代码是错误的 -

//Cannot create a generic array of Box<Integer>
Box<Integer>[] arrayOfLists = new Box<Integer>[2];

因为编译器使用类型擦除,类型参数被替换为Object,用户可以向数组添加任何类型的对象。但在运行时,代码将无法抛出ArrayStoreException

// compiler error, but if it is allowed
Object[] stringBoxes = new Box<String>[];

// OK
stringBoxes[0] = new Box<String>();  

// An ArrayStoreException should be thrown,
//but the runtime can't detect it.
stringBoxes[1] = new Box<Integer>();

上一篇:Java泛型不能使用instanceof运算符

下一篇:Java泛型不能使用异常

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

扫描二维码
程序员编程王

扫一扫关注最新编程教程