当我尝试为测试方法创建对象时,我得到一个空指针异常。
这是构造函数的代码;
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)code;
public void setBoard(int size)
{
this.size = size;
}
我一直在努力,但还没有结果......
提前致谢!
答案 0 :(得分:0)
字段board
为null
。将您的代码更改为:
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');
}
}
答案 1 :(得分:0)
NPE
的一个可能原因可能是您的board
char
数组尚未初始化。
board = new char[size][size];
当您在构造函数中传递大小时,在类级别声明它时,您将无法确定数组的正确大小。因此,您需要在构造函数中实例化它。