-1

当我尝试为测试方法创建对象时,我得到一个空指针异常。

这是构造函数的代码;

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 size) 代码;

    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

一个可能的原因NPE可能是您的board char数组尚未初始化。

board = new char[size][size];

当您在构造函数中传递大小时,当您在类级别声明数组时,您将无法确定数组的正确大小。因此,您需要在构造函数中实例化它。

于 2013-02-16T15:21:31.130 回答