所以我正在编写一个迷宫解算器,在我的迷宫类中,我正在使用一个自定义“方形”对象数组的数组,用于迷宫的2d网格。
public class Maze {
int height;
int width;
Square[][] grid; //2d array of squares representing the maze
Square startSquare;
Square exitSquare;
...
public static Square[][] gridMaker(int h, int w, List<Integer> squares){
int count=0;
Square[][] newgrid;
for (int i=0; i<h; i++){
for (int j=0; j<w; j++){
Square element = new Square(squares.get(count),i,j);
newgrid[i][j] = element;
count++;
}
}
return newgrid;
}
所以这会返回一个未初始化的变量错误,我明白我只声明了newgrid变量并且没有初始化。但是,我无法弄清楚如何这样做,而我在这里阅读了很多关于多维数组初始化的帖子,但他们都没有回答我的问题。我觉得我错过了一些非常明显的东西。
提前致谢!
答案 0 :(得分:1)
你遗漏了一些非常明显的东西。
Square[][] newgrid = new Square[h][w];
答案 1 :(得分:0)
根据您在此处提交的内容,您可以在gridMaker方法中声明您需要在其中实例化2D数组newgrid。因此,根据您的其余代码,它应该是:
Square[][] newgrid = new Square[h][w];
实例化后,您应该能够为数组中的索引赋值,从而消除错误。