为什么要强制转换

为什么要强制转换

System.out.println(i+1+":"+((Notice)(noticeList.get(i))).getTitle());

这段代码显示公告的信息,我不理解noticeList.get(i).getTitle为什么不行,为什么要进行强制转换呢?


正在回答 回答被采纳积分+1

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

1回答
好帮手慕珊 2019-08-17 13:56:16

你好!在集合中添加数据的时候,如果集合没有使用泛型,则在获取数据时,得到的是Object类型的对象,所以需要强制转换成Notice类的对象,才能调用Notice类的getTitle()方法

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

后面的课程中会引入泛型,也就是在定义集合时写成:ArrayList<Notice> noticeList=new ArrayList<Notice>();这样就限制集合中只能添加Notice类型的对象,所以在取数据时也就不用强制类型转换了。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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