为什么Iterator中的next()方法得到的是Object类的对象?

为什么Iterator中的next()方法得到的是Object类的对象?

为什么Iterator中的next()方法得到的是Object类的对象?

正在回答

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

2回答

同学你好,经查文档确认,其返回值是下一个元素,如:

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

并没有具体的类型,通常在没有泛型时,我们认为其返回的是Object类型。需要强制转换。如果加了泛型,返回的是泛型类型。

祝:学习愉快~

好帮手慕阿满 2019-03-04 15:44:43

同学你好,Iteartor的next方法返回值类型是泛型的类型,或者是你遍历的对象类型,不是Object类型的对象。如宠物猫案例中的Iteator遍历,返回的是宠物猫Cat类型的。

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

  • 提问者 牡丹丹丹丶 #1
    引入泛型以后返回的是泛型的类型,没有引入泛型的时候返回的是Object类型,必须强制类型转换,对吗?为什么没有引入泛型的时候返回的是Object?
    2019-03-05 10:39:08
  • 好帮手慕阿满 回复 提问者 牡丹丹丹丶 #2
    同学你好,没有引入泛型时,其返回的也不是Object类型,而是变量的对象类型,如本节课中老师使用Iteartor变量宠物猫,并没有泛型,但是输出的是Cat对象。
    2019-03-05 14:42:10
  • 既然返回的是Cat类型,为什么还要强转?c=(Cat)it.next();
    2019-03-19 08:28:52
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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