-1

テスト メソッドのオブジェクトを作成しようとしているときに、null ポインター例外が発生します。

これはコンストラクターのコードです。

public Board(int size)
{
    setBoard(size);
    for (int row = 0; row < size; row++) {
         for (int col = 0; col < size; col++) {
             board[row][col] = 'E';
         }
    }
}

setBoard(int サイズ) コード;

    public void setBoard(int size)
{
    this.size = size;
}

頑張ってるけど結果が出ない…

前もって感謝します!

4

2 に答える 2

0

フィールドboardnull. コードを次のように変更します。

public Board(int size)
{
    setBoard(size);
    board = new char[size][size]; // initializes the board field
    for (int row = 0; row < size; row++) {
         for (int col = 0; col < size; col++) {
             board[row][col] = 'E';
         }
    }
}

より良いバージョンは次のようになります。

public Board(int size)
{
    setBoard(size);
    board = new char[size][size]; // initializes the board field
    for (char[] row : board) {
        Arrays.fill(row, 'E');
    }
}
于 2013-02-16T15:21:14.557 に答える
0

考えられる原因の 1 つはNPEboard char配列が初期化されていないことです。

board = new char[size][size];

コンストラクターでサイズを渡しているため、クラス レベルで配列を宣言すると、配列の正しいサイズを判断できなくなります。したがって、コンストラクターでインスタンス化する必要があります。

于 2013-02-16T15:21:31.130 に答える