1

我经常遇到 NullPointerExceptionclickCell[r][c] = false;并且new LifeGUI(new LifeModel(x, y, s);无法修复它。请解释为什么会出现这个问题以及我如何解决它。

代码:

public  LifeModel(int rows, int cols, int cellSize) {
    row = rows;
    col = cols;
    cSize = cellSize;
    for (int r = 0; r < row; r++) {
        for ( int c = 0; c < col; c++) {
            clickCell[r][c] = false;
        }
    }
}

public static void main(int x, int y, int s) {
    new LifeGUI(new LifeModel(x, y, s));        
}
4

2 回答 2

2

您必须创建数组对象

boolean [][] clickCell = new boolean[rows][cols];

在 for 循环之前添加此命令。

更多信息在这里

如果 clickCell 在其他地方声明,命令应该是:

clickCell = new boolean[rows][cols];

或者正如 GriffeyDog 建议的那样new boolean[rows][cols],根据程序的逻辑,在声明数组的地方添加 。

于 2013-02-12T22:01:02.700 回答
2

您尚未显示clickcell声明数组的位置,但可能您已声明它但未初始化它。你可能有

boolean[][] clickcell;

但需要:

boolean[][] clickcell = new boolean[rows][cols];

whererowscols表示您需要的数组的大小。

于 2013-02-12T22:04:49.393 回答