// 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의 예외 : 해결되지 않은 컴파일 문제 : 반복기를 유형으로 해결할 수 없습니다.
Iterator는 내장 함수가 아닙니까?
강제로 가져 오기 :
import java.util.Iterator;
이 문제를 해결하려면 Iterator 가져 오기를 피할 수있는 방법이 있습니까? 많은 시간을 절약 할 수 있지만 단순히 Iterator를 가져올 수없는 이유는 내 프로젝트에서 import java.util.ArrayList 이외의 다른 항목을 가져올 수 없기 때문입니다 .
또한 이클립스를 사용하여 코드를 작성하고 있습니다.
한마디로-아니. 에 대해 "마법적인"것은 없습니다 Iterator
. java.util
패키지 의 클래스 이며 사용하려면 가져 오거나 정규화 된 이름을 참조해야합니다.
java.util.Iterator<Player> itr = players.iterator();
그러나 이것은 또한 귀하의 요구 사항에 의해 금지되어 있다고 생각합니다. 대신 향상된 for
루프를 사용할 수 있습니다 .
for (Player player : players) {
player.play(par);
}
편집 :
@yshavit이 주석에서 언급했듯이, players
은 (는) List
단지 오래된 것이 아니기 Iterable
때문에 인덱스를 통해 직접 요소에 액세스 할 수 있습니다. 즉, "구식" for
루프를 사용할 수도 있습니다 .
for (int i = 0; i < players.size(); ++i) {
players.get(i).play(par);
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다