java - 集合声明的差异
问题描述
以下几行之间有什么区别:
ArrayList list = new ArrayList();
ArrayList<String> list = new ArrayList();
ArrayList<String> list = new ArrayList<String>();
我刚开始从 HeadFirstJava 书中学习集合和数据结构,我有点困惑,因为我看到人们在研究时使用了上面的所有三个示例。
解决方案
第一行和第二行使用原始类型。
原始类型是在没有类型参数的情况下使用的类型,即使基类具有类型参数。
原始类型的存在只是为了向后兼容古老的(Java 5 之前的)代码,根本不应该在新代码中使用。关于原始类型的规则很奇怪且不直观。
第三个是正确的,但可以写成这样更短的方式:
ArrayList<String> list = new ArrayList<>();
这会让编译器“猜测”到<>
.
推荐阅读
- tensorflow - Tensorflow js 将张量和权重相乘
- python - Flask 502 Bad Gateway - 服务器重启后 sock 文件失败
- salesforce - 在顺丰营销云中收集外部系统用户信息时应该使用什么字段?
- c - 我无法在 C 中发送消息
- node.js - 我想要数组索引中的文件内容,请在下面找到示例
- java - 循环后,扫描仪在调用时未注册 scan.nextLine()?
- user-defined-functions - cuDF 滚动 UDF 不适用于 cuPY 函数
- android - React 本机应用程序不会在 android 设备上加载
- python - 找不到包裹
- php - 使用 laravel excel 编辑 Laravel excel 文件