java中迭代器取出对象后,为什么要将对象提升为Object,对象放到集合的时候不就是被提升为了Object了吗?

importsrstudent.学生类;importjava.util.ArrayList;importjava.util.Iterator;importjava.uti... import srstudent.学生类;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
*
* list的简单练习;除去重复元素;
*/
public class List练习题 {
public static void main(String[] args){
学生类 student1 = new 学生类("小明",11);
学生类 student2 = new 学生类("小明",11);
ArrayList list = new ArrayList();
list.add(student1);
list.add(student2);
ArrayList temp = new ArrayList();
for (Iterator it = list.iterator();it.hasNext();){
Object obj = it.next();//################################//
if(!temp.contains(obj)){
temp.add(obj);
}
}
System.out.println(temp);
}
}
标有###的那一行;为什么要把it.next()转成Object对象?如果不转,经过编译,会抛出一个Nosuchelement的异常,这是为什么呢?
展开
 我来答
夜冷叻诶
2016-09-12 · TA获得超过174个赞
知道小有建树答主
回答量:206
采纳率:50%
帮助的人:149万
展开全部
it.next()取出的是Object对象,你需要强制转换成 学生类 而不是转换成 Object。多态先下转型。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式