2

我有一个 android 活动,用户在其中指定游戏中的玩家数量,以及赢得游戏所需的积分。一旦用户点击“开始”,一个新的 Game 对象应该被创建,不管有多少 Player 对象。我已经验证了这些数字是从 EditText 视图中正确提取的,但是由于某种原因,我在以下行从我的 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;
          }
  }
 }

感谢您花时间阅读本文,感谢您的帮助。

4

2 回答 2

8

您需要实例化每个玩家对象以及数组:

for(i =0; i<numOfPlayers;i++){
   players[i] = new Player();
   players[i].name = "Player " + i;
}
于 2013-02-15T18:48:32.827 回答
6

您创建了数组,但没有创建任何 Players。创建数组时,数组中的所有点最初都是空的。

创建播放器,然后指定其名称。

players[i] = new Player();
players[i].name = "Player " + i;
于 2013-02-15T18:47:56.950 回答