[英]Point[] array throws NullPointerException when trying to set variables
[英]NullPointerException when trying to set a double array in java
這是我認為的相關代碼
class Sudoku {
int[][] grid;
void generateSudokuFromInput()
{
grid = new int[][] <--- java.lang.NullPointerException at Sudoku.generateSudokuFromInput(Sudoku.java:309)
{
(...)
}
}
void solveIt() {
generateSudokuFromInput();
}
}
不斷收到NullPointer錯誤
聲明多維數組時,必須指定除最后一個維以外的所有維。
例如
grid = new int [3][];
這將很好地工作。
作為稍后聲明數組大小的替代方法(如其他答案所述),您也可以在聲明數組時初始化它:
class Sudoku {
int[][] grid = {
{0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0}
};
void generateSudokuFromInput() {
// just set the values on grid, e.g. grid[0][0] = 9
}
void solveIt() {
generateSudokuFromInput();
}
}
要創建數組,必須指定下標值。
grid = new int[2][];
grid[0]=new int[2];
grid[1]=new int[5];
要么
grid=new int[3][3];
要了解有關數組的更多信息,請參考本文檔。
您需要提供第一個尺寸的尺寸:
grid = new int[3][];
否則,您如何期望第二維起作用? 二維數組[i] [j]基本上表示“我的數組有i個數組,每個數組都有j個值”。 如果沒有我,那什么也沒有。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.