小编Jac*_*son的帖子

for循环将数组元素实例化为一个对象,但我还是必须手动实例化?

所以我有一个数组:

Cell[][] grid = new Cell[5][20];

for (int i = 0; i < grid.length; i++){
    for(int j = 0; j < grid[i].length; j++)
    {
        grid[i][j] = new Cell();
    }
}           
Run Code Online (Sandbox Code Playgroud)

因此,根据我的理解,数组的每个元素都将被制作成一个新的Cell对象.这就是我想要的,但是当我尝试访问特定的元素/单元格时,我得到一个NULL指针错误.

grid[0][1].cellState = 5;    //THIS MAKES AN ERROR!! //
Run Code Online (Sandbox Code Playgroud)

为了使它工作,我必须手动实例化它:

grid[0][1] = new Cell();
grid[0][1].cellState = 5;
Run Code Online (Sandbox Code Playgroud)

我只是不明白,是不是for循环为我做这个?在某个点循环之后,ij将在某一点等于0 1,所以这与做0,1 =新Cell()的基本相同

谢谢你的帮助,我是编程新手.

编辑:

我已经弄清楚了,我是个白痴,说实话,这只是一个让我困扰了好几个小时的愚蠢错误.我试图在for循环中设置单元格状态(因为我只是在测试).因此grid [0] [1] .cellState = 5会在第一个循环上抛出错误,因为它尚未创建.对不起,我没有使用我的大脑,谢谢你们的帮助.

java arrays loops

1
推荐指数
1
解决办法
89
查看次数

标签 统计

arrays ×1

java ×1

loops ×1