JGraphT GetPath抛出NullPointerException

时间:2013-06-06 19:38:29

标签: java nullpointerexception dijkstra jgrapht

您好我正在使用JGraphT构建一个大项目。为此,我构建了一个方法,使用JGraphT中的Djikstra类返回两组节点之间的最短路径。

当我尝试访问路径或它的子方法时,我得到NullPointerException。这意味着

path = new DijkstraShortestPath(graph, v, y);

没问题,但是

path.getPathLength()

抛出异常。

这是代码:

static GraphPath GraphsDistance(Graph graph, Set<CustomVertex> source, Set<CustomVertex> destination){
//returns the shortest path between 2 sets on nodes
DijkstraShortestPath path,solution;
double distance=Double.MAX_VALUE;
solution=null;

for(CustomVertex v:source){
    for(CustomVertex y:destination){
        path = new DijkstraShortestPath(graph, v, y);
        if (path.getPathLength()<distance){
            distance=path.getPathLength();
            solution=path;
        }
    }
}
System.out.println("source: "+source.toString()+ "\ndestination: "+destination.toString());
return solution.getPath();
}

任何线索是什么?

这是我的系统:

Product Version: NetBeans IDE 7.0.1 (Build 20121011-unknown-revn)
Java: 1.6.0_27; OpenJDK Client VM 20.0-b12
System: Linux version 3.5.0-17-generic running on i386; UTF-8; en_US (nb)

1 个答案:

答案 0 :(得分:0)

您的图表似乎未连接。如果其中一个节点为null,则在评估路径长度值之前,您将获得NullPointer。您可能希望在JUnit Test中尝试使用一个小的连接样本图和另一个未连接的样本图。