老师为什么我这里用强转的方法不行?
我用之前的课程中的强制方法去输出信息结果不行,这是为什么呢?请老师详细解答一下和解决方法!谢谢!
package com.imooc.set; import java.util.HashSet; import java.util.Iterator; import java.util.Set; public class CatTest { public static void main(String[] args) { //定义宠物猫对象 Cat huahua=new Cat("花花",12,"英国短毛猫"); Cat fanfan=new Cat("凡凡",3,"中华田园猫"); //将宠物猫对象方法HashSet中 Set set=new HashSet(); set.add(huahua); set.add(fanfan); //显示宠物猫信息 Iterator it=set.iterator(); while(it.hasNext()) { System.out.println(((Cat)(it.next())).getName()+" "+((Cat)(it.next())).getMonth()+" "+((Cat)(it.next())).getSpecies()); } } }
我试过只留前两个输出就可以,就是只输出名字和年龄就可以,一输出第三个品种就会异常,这是为什么呢?
1
收起
正在回答
1回答
it.next()方法不能在循环中多次调用,如果集合中有2条数据,没调用一次it.next()方法就取出一条数据,那么第三次再调用没有数据就出问题了。
所以代码改成:循环中的输出语句前加上:Cat cat=(Cat)it.next();然后输出时使用cat对象去调用方法。
祝学习愉快!
Java零基础入门18
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星