一个ArrayList如果不用泛型,可以随便放各种类型对象或基本数据对吧?

SilentHunter460 2020-08-04 11:48:57
一个ArrayList如果不使用泛型,可以随便放各种类型对象或基本数据对吧?这个自由度似乎很大啊,这样做会不会引发其它问题?

ArrayList dates = new ArrayList();
dates.add(new Date());
dates.add(new String("string"));
dates.add(1);
System.out.println(dates.get(0));
System.out.println(dates.get(1));
System.out.println(dates.get(2));
...全文
2098 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
CS_草祭先生 2020-08-05
  • 打赏
  • 举报
回复
代码规范来说,不推荐不制定类型使用,一般编译器会给出警告灯提示。如果不指定类型,默认使用基类Object。
xiaoxiangqing 2020-08-05
  • 打赏
  • 举报
回复
不指定类型,就相当于指定了Object类型,取值需要强制转换
SilentHunter460 2020-08-05
  • 打赏
  • 举报
回复
引用 1 楼 wsb_2526 的回复:
集合只能存储引用类型,不能存储基本类型;在实际操作中基本类型会进行自动装箱,所以给人一种错觉,集合可以存储基本类型。
谢谢提醒。你说得对, dates.add(1) 其实是 dates.add(new Integer(1))
yuwentao4761901 2020-08-05
  • 打赏
  • 举报
回复
理论上来说是不可以的!集合只能存储引用类型,不能存储基本类型。实际的操作中基本类型会进行自动装箱,所以给人一种错觉,集合可以存储基本类型。
wmxz520 2020-08-05
  • 打赏
  • 举报
回复
如果不指定要存放数据的类型,等同于Object类型,如果指定了类型,就只能存放该类型以及该类型的子类型。java中的泛型本质上是一种参数化泛型,我们指定的类型是作为一个参数传递过去的。一般情况下,我们在使用时会指定参数类型。
wmxz520 2020-08-05
  • 打赏
  • 举报
回复
集合只能存储引用类型,不能存储基本类型;在实际操作中基本类型会进行自动装箱,所以给人一种错觉,集合可以存储基本类型。
lyp597 2020-08-05
  • 打赏
  • 举报
回复
不能存基本类型,只是对基本类型封装了

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧