A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wahaha 中级黑马   /  2013-3-11 07:46  /  1545 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

迭代器的next方法返回值类型是Object,所以要记得类型转换。 思考:为什么next方法的返回类型是Object的呢?



评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

3 个回复

倒序浏览
因为不知道你存入的是Person还是Demo还是谁谁的对象。例如,如果不加上泛型,

你可以add(new Person()),你还可以add(new Demo());
add(new Student());还可以add("java01");
add(1222);

等等等等。。。。
所以你通过迭代器取出来的时候,如果不用Object,你用谁?因为Object是上帝。。。可以指向任何的对象。。。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1 赞一个!

查看全部评分

回复 使用道具 举报
本帖最后由 邹学良 于 2013-3-11 10:15 编辑

因为JAVA定义的iterator作为一个负责定义访问和遍历元素的接口
而为了能让多种数据类型实现,它定义的元素都是上帝类型Object型的
每当你调用迭代器时都是在实现迭代器接口

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

回复 使用道具 举报
jdk1.5以前返回的都是Object
1.5以后,如果不用泛型,默认返回类型为Object,如果用泛型,就会根据实际参数而定
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马