代码对比
✕ Java 1.4
List names = new ArrayList();
names.add("Duke");
String name = (String) names.get(0);
✓ Java 5+
List<String> names = new ArrayList();
names.add("Duke");
String name = names.get(0);
发现此代码有问题? 告诉我们。
为什么现代方式更好
编译期安全
无效的元素类型会在编译期而非运行期失败。
无需取值强制转换
值会保留其声明的元素类型。
自解释的API
集合声明能准确说明其包含的内容。
旧方式
原始集合
现代方式
泛型集合
自 JDK
5
难度
入门
JDK 支持
从原始集合到泛型类型
可用
泛型自JDK 5(2004年9月)起可用。
工作原理
原始集合可以接受任意对象类型,类型错误会被推迟到强制转换执行时才暴露。泛型类型参数让编译器能够校验写入和读取,消除强制转换, 增强IDE辅助功能,并使API契约更加明确。原始类型通常只应保留在经过仔细隔离的遗留互操作边界处。
相关文档
证明