JAVA Iterator迭代器返回类型问题。

SmallSmallhao 2016-05-25 04:37:07
声明一个List集合,往集合里添加A类型元素与B类型元素,再创建这个集合的Iterator迭代器,并声明迭代器返回元素为A类型。那么在调用这个迭代器的next()方法时,遇到B类型元素会怎么样?例如下面的代码,在集合s里有Account与String和StringBuffer类型,而迭代器返回类型我声明为Account,那么在.next()方法返回String和StringBuffer类型时怎么转换为Account类型?为什么不报错?
package Test;
import java.util.*;
public class Hzh14 {
public static void main(String[]args){
List s=new ArrayList();
StringBuffer s1=new StringBuffer("5");

Account a=new Account("abc");
Account a1=new Account("add");
s.add("1");s.add("2");s.add("3");s.add("4");s.add(s1);s.add(a);s.add(a1);
Iterator<Account> it=s.iterator(); Iterator<Object> it1=s.iterator();
int i=0;int q=0;
while(it.hasNext()){
if(i==5||i==6){System.out.print(it.next()+" ");}
else System.out.print(it.next()+" ");
i++;
}
while(it1.hasNext()){
if(q==4){ }
System.out.print(it1.next()+" ");
q++;
}
}
}
...全文
597 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
SmallSmallhao 2016-05-25
  • 打赏
  • 举报
回复
引用 3 楼 ilovexiaou 的回复:
看你Account怎么定义的了 而且 你的list为啥不加泛型,没写的话interator泛型根本不能这么写,这么设计有原则性错误
list为不加泛型这样我就可以往一个集合里添加不同类型的元素了。我只是想测试一下。还有你说List不加泛型,interator泛型根本不能这么写是什么意思?
Alvis_you 2016-05-25
  • 打赏
  • 举报
回复
看你Account怎么定义的了 而且 你的list为啥不加泛型,没写的话interator泛型根本不能这么写,这么设计有原则性错误
SmallSmallhao 2016-05-25
  • 打赏
  • 举报
回复
引用 1 楼 ilovexiaou 的回复:
遍历为啥不用for 迭代器返回的是object,泛型强转了
String和StringBuffer类型时怎么转换为Account类型?
Alvis_you 2016-05-25
  • 打赏
  • 举报
回复
遍历为啥不用for 迭代器返回的是object,泛型强转了

58,454

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧