- Java 泛型教程
- Java 泛型 - 主页
- Java 泛型 - 概述
- Java 泛型 - 环境设置
- 示例 - 泛型类
- Java 泛型 - 泛型类
- 类型参数命名约定
- Java 泛型 - 类型推断
- Java 泛型 - 泛型方法
- Java 泛型 - 多类型
- Java 泛型 - 参数化类型
- Java 泛型 - 原始类型
- 示例 - 受限类型
- 受限类型参数
- Java 泛型 - 多重受限
- 示例 - 集合
- Java 泛型 - 泛型列表
- Java 泛型 - 泛型集合
- Java 泛型 - 泛型映射
- 示例 - 通配符
- 上限通配符
- 泛型 - 无上限通配符
- 下限通配符
- 泛型 - 通配符指南
- 类型擦除
- Java 泛型 - 类型擦除
- Java 泛型 - 受限类型擦除
- 无上限类型擦除
- Java 泛型 - 方法擦除
- 泛型限制
- Java 泛型 - 没有基本类型
- Java 泛型 - 无实例
- Java 泛型 - 无静态字段
- Java 泛型 - 无强制转换
- Java 泛型 - 无 instanceOf
- Java 泛型 - 没有数组
- Java 泛型 - 无异常
- Java 泛型 - 无重载
- Java 泛型有用资源
- Java 泛型 - 快速指南
- Java 泛型 - 有用资源
- Java 泛型 - 讨论
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>();
广告