Java 我在对象数组中得到一个空指针错误
我有一个2D对象数组,我试图存储文本文件中的数据字段“type”,但我得到了一个空指针错误Java 我在对象数组中得到一个空指针错误,java,oop,nullpointerexception,arr,Java,Oop,Nullpointerexception,Arr,我有一个2D对象数组,我试图存储文本文件中的数据字段“type”,但我得到了一个空指针错误 Cell[][] worldArray = new Cell[40][40]; for (int i = 0; i < worldArray.length; i++) { String line = lines.get(i); String[] cells = new String[40]; cells = line.split(";&q
Cell[][] worldArray = new Cell[40][40];
for (int i = 0; i < worldArray.length; i++) {
String line = lines.get(i);
String[] cells = new String[40];
cells = line.split(";");
if (cells.length != 40) {
throw new IllegalArgumentException("There are " + i
+ " cells instead of the 40 needed.");
}
for (int j = 0; j < worldArray[0].length; j++) {
worldArray[i][j].type = Integer.parseInt(cells[j]);
}
您已正确初始化对象数组:
Cell[][] worldArray = new Cell[40][40];
但此时数组是空的,没有值。换句话说,在给定的点索引,如i,j,没有单元对象。您需要在这些位置输入新的单元对象。因此,在您的代码中:
for (int j = 0; j < worldArray[0].length; j++) {
worldArray[i][j].type = Integer.parseInt(cells[j]);
}
for(int j=0;j
执行
worldary[i][j]操作时,您将获得一个NPE。键入是因为worldary[i][j]
在您为其设置值之前为空。有关处理对象数组的示例,请参见此处:显示worldArray的初始化。您确定它已正确初始化吗?另外,为了安全起见,在for循环中,应该一直到j
。这是我的初始化单元格[][]worldArray=new Cell[40][40];第二个“for”有问题“for(int j=0;j单元格对象。您可以使用worldArray[i][j]=newcell()在内部循环中实现这一点代码>假设单元格
类有一个合适的构造函数。谢谢,我找到了问题
for (int j = 0; j < worldArray[0].length; j++) {
worldArray[i][j].type = Integer.parseInt(cells[j]);
}