我有一个Android活动,用户指定游戏中玩家的数量,以及赢得游戏所需的积分。一旦用户单击“开始”,就应该使用多个Player对象创建一个新的Game对象。我已经验证过正确地从EditText Views中提取了这些数字,但出于某种原因,我在我的Game类中收到了一个空指针异常:
players[i].name = "Player " + i;
这是我的Game类的代码,还有一个Player类,它有一个数据成员名称(我没有包含)。
public class Game{
public int i;
public int numOfPlayers;
public int maxScore;
Player[] players;
public Game(int numOfPlayers, int maxScore){
this.maxScore = maxScore;
this.numOfPlayers = numOfPlayers;
players= new Player[numOfPlayers];
for(i =0; i<numOfPlayers;i++){
players[i].name = "Player " + i;
}
}
}
感谢您花时间阅读本文,感谢您的帮助。
答案 0 :(得分:8)
您需要实例化每个玩家对象以及数组:
for(i =0; i<numOfPlayers;i++){
players[i] = new Player();
players[i].name = "Player " + i;
}
答案 1 :(得分:6)
您创建了阵列,但未创建任何播放器。创建数组时,数组中的所有点最初都为空。
创建播放器,然后指定其名称。
players[i] = new Player();
players[i].name = "Player " + i;