2

ユーザーがゲームのプレーヤー数と、ゲームに勝つために必要なポイントを指定する Android アクティビティがあります。ユーザーが「開始」をクリックすると、多くの Player オブジェクトで新しい Game オブジェクトが作成されるはずです。数値が EditText ビューから適切に取得されていることは既に検証済みですが、何らかの理由で、次の行で Game クラスから null ポインター例外を受け取ります。

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

アレイを作成しましたが、プレーヤーは作成しませんでした。アレイを作成したとき、アレイ内のすべてのスポットは最初はnullです。

プレーヤーを作成し、その名前を割り当てます。

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