似乎在主线程中获得NullPointerException
,特别是在我放置节点的行和我调用addEdge
方法的位置。
private TreeMap<Node, Set<Node>> nodeToNeighbours;
主要
Graph test1 = new Graph();
Node n1 = new Node(1);
Node n2 = new Node(2);
test1.addEdges(n1, n2);
addEdges Class
public void addEdge(Node node1, Node node2) {
nodeToNeighbours.put(node2, new TreeSet<Node>());
nodeToNeighbours.put(node1, new TreeSet<Node>());
}
答案 0 :(得分:1)
您只是声明地图而不是在此初始化:
private TreeMap<Node, Set<Node>> nodeToNeighbours;
所以nodeToNeighbours
为空,因此尝试向其添加内容会导致NullPointerException
。你可以按照这里提到的那样初始化:
nodeToNeighbours = new TreeMap<Node, Set<Node>>();
如果您使用的是Java 7或更高版本,那么就像这样:
nodeToNeighbours = new TreeMap<>();
答案 1 :(得分:0)
你刚宣布它没有初始化它
private TreeMap<Node, Set<Node>> nodeToNeighbours;
默认情况下,每个引用都会使用null
进行初始化,因此您将获得NullPointerException
。尝试将其初始化为
nodeToNeighbours = new TreeMap<Node, Set<Node>>();