这两句输出有什么不一样呀!为什么一个可以输出,一个却输出不了?这是Account类的定义。
泛型错误! 名为it的迭代器泛型指明为Accout,所以在it.next().toString() 的时候 取出字符串类型被强转为Accout,由于这两个类没关系所以报错。第一句输出之所以没报错,跟java的泛型实现有关,it.next()取出的不是Account类型 而是Object类型,没有强转所以不会报错。
用Iterator<Object>才行。
用while(it.next){…}
按你写的
Iterator it = s.iterator();
就是指定了类型为Account,所以it.next()返回字符串时就会报类型不匹配,
Iterator it = s.iterator();
或
Iterator it = s.iterator();
都可以
集合类型并不是你这样用的,你用错误应用来探讨其原因,我觉得并没有太大的意义
首先,集合里的类型要一致
其次,在定义集合时最好要给出泛型
最后,遍历 List 的时候用 for (int i = 0; i < list.size(); i ++) 就好了
如果非要用 iterator 的话也应该用 while (it.hasNext) {}配套使用