为什么我不能在Iterator上调用特定的类方法?

use*_*712 0 java generics iterator class arraylist

ArrayList array = new ArrayList();

Iterator it1 = array.iterator();
while (it1.hasNext()){
   Myclass temp = it1.myGetterMethod();
   System.out.println (temp);
}
Run Code Online (Sandbox Code Playgroud)

这是我想要实现的,但Iterator只返回一个通用的Object.当我打电话时Object.getClass(),课程是Myclass.这是否意味着Iterator不是通用的,每当我迭代非Java字符串等对象时,我都需要扩展Iterator类?

cur*_*ude 7

您没有创建通用ArrayList.

尝试

ArrayList<MyClass> array = new ArrayList<MyClass>();

Iterator<MyClass> it1 = array.iterator(); 
while (it1.hasNext())
{ 
    MyClass temp = it1.myGetterMethod(); 
    System.out.println (temp); 
}
Run Code Online (Sandbox Code Playgroud)


use*_*019 5

最好使用for语句,因此隐藏迭代器的复杂性.它更容易阅读

for (MyClass temp: array )
  {
  System.out.println (temp);
  }
Run Code Online (Sandbox Code Playgroud)