JAVA 反对二维数组,无法设置数组中的元素,也无法调用其中的函数
JAVA objected 2D array ,Can't set the element in array nor call the function in it
我正在尝试使用此 Class Diagram 创建一个扫雷游戏
我被困在这里 2 小时,找不到任何解决方案,当我试图调用 GridData class 中的函数时,NullPointerException 总是 heppen,而且我无法更改中的元素一个数组,有人有建议吗?
public GridData[][] board ;
public BomberGame(int boardSize,int bombNo){
int i = 0;
int j = 0;
if(boardSize < 3)
board = new GridData[3][3] ;
else
board = new GridData[boardSize][boardSize];
for (i = 0; i < boardSize; i++)
{
for (j = 0; j < boardSize; j++)
{
//board[i][j]BomberGame = 0 ;// here is the problem i can't mess with any element in array
board[i][j].setIsOpen(true); // after doing NullPointerException occur
board[i][j].gridIsOpen();
System.out.print(board[i][j]+" ");
}
System.out.println("");
}
}
输出
null null null
null null null
null null null
执行 new GridData[3][3];
只会得到 null
数组。您必须通过以下方式初始化其中的每个元素:
for (i = 0; i < boardSize; i++) {
for (j = 0; j < boardSize; j++) {
board[i][j] = new GridData();
}
}
初始化数组后,您可以继续执行其余代码。
这是代码片段:
for (i = 0; i < boardSize; i++) {
for (j = 0; j < boardSize; j++) {
board[i][j] = new GridData();
board[i][j].setIsOpen(true);
board[i][j].gridIsOpen();
System.out.print(board[i][j] + " ");
}
System.out.println();
}
board = new GridData[3][3];
在这里,您只创建数组。现在,数组中的每个元素也需要分配。喜欢:
board[i][j] = new GridData();
我正在尝试使用此 Class Diagram 创建一个扫雷游戏 我被困在这里 2 小时,找不到任何解决方案,当我试图调用 GridData class 中的函数时,NullPointerException 总是 heppen,而且我无法更改中的元素一个数组,有人有建议吗?
public GridData[][] board ;
public BomberGame(int boardSize,int bombNo){
int i = 0;
int j = 0;
if(boardSize < 3)
board = new GridData[3][3] ;
else
board = new GridData[boardSize][boardSize];
for (i = 0; i < boardSize; i++)
{
for (j = 0; j < boardSize; j++)
{
//board[i][j]BomberGame = 0 ;// here is the problem i can't mess with any element in array
board[i][j].setIsOpen(true); // after doing NullPointerException occur
board[i][j].gridIsOpen();
System.out.print(board[i][j]+" ");
}
System.out.println("");
}
}
输出
null null null
null null null
null null null
执行 new GridData[3][3];
只会得到 null
数组。您必须通过以下方式初始化其中的每个元素:
for (i = 0; i < boardSize; i++) {
for (j = 0; j < boardSize; j++) {
board[i][j] = new GridData();
}
}
初始化数组后,您可以继续执行其余代码。
这是代码片段:
for (i = 0; i < boardSize; i++) {
for (j = 0; j < boardSize; j++) {
board[i][j] = new GridData();
board[i][j].setIsOpen(true);
board[i][j].gridIsOpen();
System.out.print(board[i][j] + " ");
}
System.out.println();
}
board = new GridData[3][3];
在这里,您只创建数组。现在,数组中的每个元素也需要分配。喜欢:
board[i][j] = new GridData();