我得到对象数组的空指针错误
I get a null pointer error with the object array
我有一个 2D 对象数组,我正在尝试存储文本文件中的数据字段“类型”,但出现空指针错误。
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]);
}
这是我的手机class
import java.awt.*;
public class Cell {
public static int cellSize;
public int x;
public int y;
public int type;
Cell(int x, int y, int type) {
this.x = x;
this.y = y;
this.type = type;
您已正确初始化对象数组:
Cell[][] worldArray = new Cell[40][40];
但此时数组为空,没有任何值。换句话说,在给定的点索引处,如 i、j,那里没有 Cell 对象。您需要在这些位置输入一个新的 Cell 对象。所以在你的代码中:
for (int j = 0; j < worldArray[0].length; j++) {
worldArray[i][j].type = Integer.parseInt(cells[j]);
}
当您执行 worldArray[i][j].type
时,您将获得 NPE,因为 worldArray[i][j]
在您为其设置值之前为空。有关处理对象数组的示例,请参见此处:https://www.geeksforgeeks.org/how-to-create-array-of-objects-in-java/
我有一个 2D 对象数组,我正在尝试存储文本文件中的数据字段“类型”,但出现空指针错误。
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]);
}
这是我的手机class
import java.awt.*;
public class Cell {
public static int cellSize;
public int x;
public int y;
public int type;
Cell(int x, int y, int type) {
this.x = x;
this.y = y;
this.type = type;
您已正确初始化对象数组:
Cell[][] worldArray = new Cell[40][40];
但此时数组为空,没有任何值。换句话说,在给定的点索引处,如 i、j,那里没有 Cell 对象。您需要在这些位置输入一个新的 Cell 对象。所以在你的代码中:
for (int j = 0; j < worldArray[0].length; j++) {
worldArray[i][j].type = Integer.parseInt(cells[j]);
}
当您执行 worldArray[i][j].type
时,您将获得 NPE,因为 worldArray[i][j]
在您为其设置值之前为空。有关处理对象数组的示例,请参见此处:https://www.geeksforgeeks.org/how-to-create-array-of-objects-in-java/