关于泛型,请教一下两句语句的区别是什么

BloodMaster 2012-10-31 12:02:07
List<String> list = new ArrayList();
List<String> list = new ArrayList<String>();
我只看到前一句会弹出个warning,但是没有发现其他实质的区别,想请教一下这两句话的区别是什么,谢谢!
...全文
298 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
haorengoodman 2012-11-02
  • 打赏
  • 举报
回复
就是声明list中到底是装什么类型的数据String,这样一旦你向list中放入的不是String类型,编译就会报错,而不是等到运行时才会报错。
  • 打赏
  • 举报
回复
就是容器可以装不同的东西而已
LiangGzone 2012-11-02
  • 打赏
  • 举报
回复
List<String> list = new ArrayList<String>();正确规范~
BloodMaster 2012-11-01
  • 打赏
  • 举报
回复
谢谢各位
soton_dolphin 2012-10-31
  • 打赏
  • 举报
回复
第一句有错误,第二句是正确的
小驴识途 2012-10-31
  • 打赏
  • 举报
回复
这个ArrayList里面,每一个node都储存着一个数据,默认值是Object型,你可以用第一个语句来创建list,出现warning是因为这里需要你更改这个默认类型,第二句就是把list中node储存的类型改成String。
有一个比较明显的区别,那就是在你想返回list中储存的数值是,第一个返回的是Object类型,而第二个是String类型。
raistlic 2012-10-31
  • 打赏
  • 举报
回复

除了那一句 warning,没有什么别的区别了。

但是就像一楼说的那样,第一句是错误的。

warning 告诉你,你的代码不是类型安全的。
linfy10 2012-10-31
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

List<String> list = new ArrayList();后面new的对象应该也是String类型的。默认的Object类型,当把new ArrayList()赋给list后就变成String类型了。
所以两句返回的都是String类型!
两种写法都可以,只是第一种不够规范而已。
[/Quote]回答的很好了。就是这个意思。
tieyougan 2012-10-31
  • 打赏
  • 举报
回复
第一种是错误的
竹林风声 2012-10-31
  • 打赏
  • 举报
回复
List<String> list = new ArrayList();后面new的对象应该也是String类型的。默认的Object类型,当把new ArrayList()赋给list后就变成String类型了。
所以两句返回的都是String类型!
两种写法都可以,只是第一种不够规范而已。
ch_x_j_ 2012-10-31
  • 打赏
  • 举报
回复
new ArrayList(),默认类型为Object;List<String>表示实现该接口List的类ArrayList也应该为<String>类型,否则会出现类型不一致的错误!
lost_guy_in_scut 2012-10-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

这个ArrayList里面,每一个node都储存着一个数据,默认值是Object型,你可以用第一个语句来创建list,出现warning是因为这里需要你更改这个默认类型,第二句就是把list中node储存的类型改成String。
有一个比较明显的区别,那就是在你想返回list中储存的数值是,第一个返回的是Object类型,而第二个是String类型。
[/Quote]
谁告诉你第一个返回的是object的?

62,614

社区成员

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

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