在测试方法中创建对象时出现问题

时间:2013-02-16 15:13:43

标签: java testing junit

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

这是构造函数的代码;

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;
}

我一直在努力,但还没有结果......

提前致谢!

2 个答案:

答案 0 :(得分: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');
    }
}

答案 1 :(得分:0)

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

board = new char[size][size];

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