对象数组出现空指针错误

vsnjm48y  于 2021-06-27  发布在  Java
关注(0)|答案(1)|浏览(350)

这个问题在这里已经有答案了

什么是nullpointerexception,如何修复它(12个答案)
9天前关门了。
我有一个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(";");
        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]);
        }

这是我的手机课

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;
oknwwptz

oknwwptz1#

已正确初始化对象数组:

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]);
}

你会得到一个npe当你这样做 worldArray[i][j].type 因为 worldArray[i][j] 在为其设置值之前为null。有关处理对象数组的示例,请参见此处:https://www.geeksforgeeks.org/how-to-create-array-of-objects-in-java/

相关问题