2016-03-23 4 views
1

これを使用して掃海艇のゲームを作成しようとしています。Class Diagram 私はここ2時間で立ち往生していますGridDataクラスの関数を呼び出そうとしていますが、NullPointerExceptionは常にheppenです。また、配列の要素を変更することはできません。誰でも提案がありますか?JAVAが2D配列をオブジェクト化しました。配列内の要素を設定することも、関数を呼び出すこともできません。

public GridData[][] board ; 

公共BomberGame(INT boardSize、INT bombNo){

int i = 0; 
int j = 0; 
if(boardSize < 3) 
    board = new GridData[3][3] ; 
else 
    board = new GridData[boardSize][boardSize]; 


for (i = 0; i < boardSize; i++) 
    { 
     for (j = 0; j < boardSize; j++) 
     { 
      //board[i][j]BomberGame = 0 ;// here is the problem i can't mess with any element in array 
      board[i][j].setIsOpen(true); // after doing NullPointerException occur 
      board[i][j].gridIsOpen(); 
      System.out.print(board[i][j]+" "); 
     } 
     System.out.println(""); 
    } 

}

出力new GridData[3][3];を行う

null null null 
null null null 
null null null 

Class Diagram

+0

Javaで配列を作成すると、すべての値が「null」になります。最初にインスタンスを作成する必要があります。 – BrainStone

答えて

0

null配列を取得します。

for (i = 0; i < boardSize; i++) { 
    for (j = 0; j < boardSize; j++) { 
     board[i][j] = new GridData(); 
    } 
} 

アレイを初期化したら、残りのコードを続行することができます。あなただけの配列を作成し、ここで

for (i = 0; i < boardSize; i++) { 
    for (j = 0; j < boardSize; j++) { 
     board[i][j] = new GridData(); 
     board[i][j].setIsOpen(true); 
     board[i][j].gridIsOpen(); 
     System.out.print(board[i][j] + " "); 
    } 
    System.out.println(); 
} 
-1
board = new GridData[3][3]; 

:ここ

は、コードスニペットです。今、配列の各要素も割り当てられる必要があります。 Like:

board[i][j] = new GridData(); 
関連する問題