今天我在看结合迭代器Iterator的时候,为什么next()方法用确定的对象接收和直接用object接收有什么区别

Iterator it = c.iterator();
while(it.hasNext()){
   Student stu = (Student) it.next();
   System.out.println(stu);
}

Iterator it = c.iterator();
while(it.hasNext()){
   Object obj =it.next();
   System.out.println(obj);
}

Mr_CuriosityOH
浏览 1645回答 3
3回答

四无小青年

如果你不转成Student类型,那么这个变量就不能使用Student类的方法和变量,只能使用Object 提供的方法。比如Student 中有一个getName()方法,如果你不把它转成Student 你就不能使用getName()。若解惑,望采纳

程序员大阳

it.next()返回的都是Object,都是用Object接收的吧。只不过Student stu = (Student) it.next();是在你确定it遍历的c中的对象都是Student类型的情况下,强制转换把Object类型的it.netx()转换为了Student类型。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java