2-2,老师您好,我有一个关于您课程中所使用的代码的问题。

2-2,老师您好,我有一个关于您课程中所使用的代码的问题。

http://img1.sycdn.imooc.com//climg/5b3088b3000153a304320184.jpg

请问这几行代码编译器为什么会警示?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

这个提示主要是需要告诉编译器list中需要保存什么类型的对象,可以这样写就不会出现警示了:

List<String> list=new ArrayList<String>();

这样写是使用泛型,告诉编译器list中保存的对象的类型是String。泛型的概念在后面的课程中会讲到。

  • 朱裕炜 提问者 #1
    谢谢老师啦。那如果我要在同一个ArrayList中保存属于不同Class的对象(如一些String对象+一些Date对象),泛型还能用吗?如果不能,那不用泛型的话可以这么做吗?(我记得在普通的数组中是不可以的,它里面只能放同类对象)感谢!
    2018-06-25 17:47:04
  • imoocLovers 回复 提问者 朱裕炜 #2
    ①使用泛型,比如指定集合ArrayList保存的类型是String,那这个ArrayList<String>中就只能保存String类型的对象,如果当我们指定的类型是某个父类,那这个时候是可以保存所有继承这个父类的子类的对象,但是具体操作集合成员时,需要按照向上转型的方式操作。 ②不使用泛型的话,是可以向同一个ArrayList中保存不同的Object对象,但是此时编译器会提出黄色警告,同时,使用集合成员时需要进行类型转换。
    2018-06-25 18:58:04
  • 朱裕炜 提问者 回复 imoocLovers #3
    哇太详细了,谢谢老师。不过“但是具体操作集合成员时,需要按照向上转型的方式操作”这里我不太明白,这是什么意思啊?
    2018-06-26 20:19:10
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师