iterator的next()方法的一点小问题
来源:3-7 添加和显示信息
慕先生6309556
2021-08-08 19:07:37
public static void main(String[] args) {
Set t1=new HashSet();
Cat one=new Cat(12,"英国短毛","花花");
Cat two=new Cat(3,"中华田园","凡凡");
t1.add(one);
t1.add(two);
Iterator it=t1.iterator();
while(it.hasNext()) {
//next()返回的是集合中的下一个元素,所以返回的类型是需要根据集合中的内容类型来决定的,如果集合中没有指定泛型,返回的就是Object类型的
//此刻调用的相当于Object类的toString 方法
System.out.println( it.next());
}老师我理解的it.next()返回的是一个Object类的对象,那么这个Object类对象:(1)能够强制转换成
Cat类嘛?(2)我还不理解,既然it.next()返回的是一个Object类的对象,你重写Cat类的toString方法没有用啊
1回答
好帮手慕小小
2021-08-09
同学你好
1、是可以强转为Cat类的。
2、next()方法的返回值类型是Object,但将其强转为Cat类型后,输出对应的对象,默认会调用Cat类的toString()方法。
Cat类重写的toString()方法:

测试代码如下:
Set t1=new HashSet();
Cat one=new Cat(12,"英国短毛","花花");
Cat two=new Cat(3,"中华田园","凡凡");
t1.add(one);
t1.add(two);
Iterator it=t1.iterator();
while(it.hasNext()) {
Cat cat = (Cat)it.next();
System.out.println(cat);//默认会调用Cat类的toString()方法
}输出结果为:

祝学习愉快~
相似问题