我希望将代码中的某些元素(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,扩展的边缘类和上面的代码都在同一个包中。迭代所有边缘都没有问题。
答案 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构造函数