getEdge() 方法 returns 对我刚刚创建的边为 null

getEdge() method returns null for the edge I've just created

我想将我的代码 (mthing) 中的某些元素与图形的某些边关联起来,但是当我试图获取我刚刚创建的边时 - 我得到的是空值。我是否以错误的方式使用此方法?我是否总是必须使用方法 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,并且扩展边 class 和上面的代码在同一个包中。我遍历所有边缘都没有问题。

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

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

如果您显示 类 图、c2 和 c1 是什么类型,可能会更好。

您可能正在使用有向图并正在创建从 c2 到 c1 的边,然后将不存在的边从 c1 传递到 c2,因此将 null 传递到您的 MovingThing 构造函数中