【发布时间】:2025-11-28 21:05:01
【问题描述】:
我有一个二维数组,它是 Node 类的对象。这是 Node 类:
public class Node {
private boolean edge;
private int parent;
public Node() {
edge = false;
parent = 0;
}
public Node(boolean edge, int parent) {
this.edge = edge;
this.parent = parent;
}
public boolean isNode() {
return edge;
}
public void setNode(boolean node) {
this.edge = node;
}
public int getParent() {
return parent;
}
public void setParent(int parent) {
this.parent = parent;
}
}
这是我的二维数组:
private Node[][] adjMatrix = new Node[x][y];
在名为 addEdge 的方法中,我试图将数组中点 i、j 处的节点设置为 true。
public void addEdge(int i, int j) {
adjMatrix[i][j].setNode(true);
adjMatrix[j][i].setNode(true);
}
但是我在这一行得到了一个空指针异常,我不知道如何修复它。
adjMatrix[i][j].setNode(true);
我认为这是一个简单的答案,但我一直找不到答案,因为我一直在寻找。因此,我们将不胜感激。
非常感谢:)
【问题讨论】:
-
adjMatrix[i][j]is null => 你需要在某个地方用非空值初始化它:adjMatrix[i][j] = new Node(...);。 -
是的,很抱歉,答案很明显。我以前有一个二维布尔数组,因为它们是原始类型,所以我不必初始化它们,然后我将数组更改为我忘记的对象之一,然后必须初始化它们:) 感谢大家的回答!
标签: java arrays boolean multidimensional-array