getEdge()方法为我刚创建的

时间:2015-05-06 19:36:47

标签: java jgrapht

我希望将代码中的某些元素(mthing)与图形的某些边缘联系起来,但是当我试图获得我刚刚创建的边缘时 - 我得到了null 。我是以错误的方式使用这种方法吗?我总是必须使用方法getEdgeSource()吗?我该怎么做,如果我不想通过整个图表,只有一个边缘?

graph.addEdge(c2, c1);
System.out.println("added connection c2 c1" + graph.getEdge(c2, c1));

MovingThing mthing = new MovingThing(parent, graph.getEdge(c1, c2));    

以防万一:我通过某些方法扩展了DefaultEdge,扩展的边缘类和上面的代码都在同一个包中。迭代所有边缘都没有问题。

2 个答案:

答案 0 :(得分:0)

addEdge()返回一个布尔值,因此您可以创建一个条件来检查是否将边添加到图中。所以,可能是这样的 -

if(graph.addEdge(c2, c1))
      System.out.println("added connection c2 c1" + graph.getEdge(c2, c1));

如果你展示了什么类型的图表,c2和c1可能是好的。

答案 1 :(得分:0)

你可能正在使用有向图并且正在创建从c2到c1的边缘,但是然后将不存在的边从c1传递到c2因此null进入你的MovingThing构造函数