黑马程序员技术交流社区

标题: 关于迭代器返回值的类型问题 [打印本页]

作者: wahaha    时间: 2013-3-11 07:46
标题: 关于迭代器返回值的类型问题
迭代器的next方法返回值类型是Object,所以要记得类型转换。 思考:为什么next方法的返回类型是Object的呢?




作者: 罗海清    时间: 2013-3-11 07:55
因为不知道你存入的是Person还是Demo还是谁谁的对象。例如,如果不加上泛型,

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

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

作者: 邹学良    时间: 2013-3-11 08:13
本帖最后由 邹学良 于 2013-3-11 10:15 编辑

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

作者: 谢洋    时间: 2013-3-11 12:28
jdk1.5以前返回的都是Object
1.5以后,如果不用泛型,默认返回类型为Object,如果用泛型,就会根据实际参数而定




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2