// inside my class
public void playRound() {
        Iterator<Player> itr = players.iterator();
        while(itr.hasNext()){
             Player player =itr.next();
             player.play(par);
        }
        // Supply this code!
    }


它说:“主线程” java.lang.Error中的异常:未解决的编译问题:
    迭代器无法解析为类型

迭代器不是内置函数吗?

我被迫进口:

import java.util.Iterator;


如果我想解决此问题,有一种方法可以避免导入Iterator。
我不能简单地导入Iterator甚至节省很多时间的原因是因为对于我的项目,除import java.util.ArrayList之外,我不允许导入其他任何内容;

此外,我正在使用eclipse编写我的代码。

最佳答案

一句话-不。 Iterator没有什么“神奇”的东西。它是java.util包中的一个类,如果要使用它,则应导入它或引用其完全限定名称:

java.util.Iterator<Player> itr = players.iterator();


但是我想这也是您的要求所禁止的。相反,您可以只使用增强的for循环:

for (Player player : players) {
    player.play(par);
}


编辑:
正如@yshavit在注释中指出的那样,由于playersList而不是任何旧的Iterable,因此您可以直接通过它们的索引访问元素,这意味着您还可以使用“旧式” for循环:

for (int i = 0; i < players.size(); ++i) {
    players.get(i).play(par);
}

关于java - 迭代器不是内置函数吗,为什么必须导入它?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40446362/

10-12 12:54
查看更多