我想調試pickPlayers。添加「選擇」後,列表「播放器」成功填充,但當調用「isPlaying」時,它爲空。當方法調用另一個方法時,ArrayList是否爲空?
任何人都可以看到爲什麼?我確保推入第一個元素,因此它實際上不應該是是 null數組列表;一旦完成並且「正在播放」,我就看不到它在哪裏排空球員。
public abstract class Game {
protected ArrayList<Player> players;
public Game(String gameName, int numPlayers) {
this.name = gameName;
this.totalPlayers = numPlayers;
}
public void pickPlayers(ArrayList<Player> players, int num){
// rand int between 0 and number of players
Random generator = new Random();
int rand = generator.nextInt(num) + 0;
Player choice = null;
int i = 0;
// first player
for (Player player: players){
if (i == rand){
choice = player;
}
i++;
}
players.add(choice);
i=1;
while (i < num){
rand = generator.nextInt(num) + 0;
int a=0;
for (Player player: players){
if (a == rand){
choice = player;
System.out.println(choice.getName());
}
a++;
}
if (!isPlaying(choice)){
i++;
players.add(choice);
choice.play();
System.out.println(choice.getName());
}
}
}
public boolean isPlaying(Player p){
return players.contains(p);
}
}
我的確在編輯一個通過的文件,而不是我通過的狀態文件。我的教授在文檔中指出,通過的文件和狀態文件中的文件名是相同的(可能是錯字?)一旦我改變了名稱並初始化了數組列表,它就可以正常工作。十分感謝你的幫助。 –