gpt4 book ai didi

java - 从 Java 中的节点创建边

转载 作者:行者123 更新时间:2023-11-29 06:12:54 28 4
gpt4 key购买 nike

<分区>

每当我尝试从节点创建简单边时,我都会收到错误消息。基本上,我创建了两个我自己的类,分别称为 Node 和 Edge。

Node类如下:

public class Node {

public String ident;
public int numLinks;

public Edge[] neighbours;


public Node (String ident) {
this.ident = ident;

}

public void setNeighbour (Node start, Node end, int cost, int portNum) {

}
}

我的 Edge 类如下:

public class Edge {

Node start;
Node end;
int cost;
int portNum;

public Edge (Node a, Node b, int cost, int portNum) {
this.start = a;
this.end = b;
this.cost = cost;
this.portNum = portNum;
}
}

在我的主类中,我创建了两个节点,即开始节点和结束节点。成本和端口号(这两个节点都监听的端口号),我从一个文本文件中读取并将它们保存到一个名为“linkCostList”和“portNumList”的数组列表中。

现在,由于每个起始节点可以有多个边(我基本上是在创建一个图),所以我按以下方式调用 setNeighbour() 方法:

for (int i = 0; i < startNode.numLinks; i++) {
nextNode = new Node (String name of node I read from text file)
startNode.setNeighbour (startNode, nextNode, linkCostList.get(i), portNumList.get(i));
}

我的setNeighbour方法如下:

public void setNeighbour (Node start, Node end, int cost, int portNum) {
for (int i = 0; i < start.numLinks; i++) {
neighbours[i] = new Edge (start, end, cost, portNum);
}
}

每当我编译它时,我都会收到以下类型的错误:

Exception in thread "main" java.lang.NullPointerException
at Node.setNeighbour(Node.java: *line number*)
at Start.startlsr(Start.java: *line number*)
at graph.main(lsr.java: *line number*)
}

我知道这是一个空指针异常,所以,在那个循环的某个地方,我一定做错了什么。谁能帮我解决这个问题?

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com