JGraphT无法强制转换为org.jgrapht.graph.DefaultWeightedEdge

时间:2011-09-24 20:40:52

标签: jgrapht

我是新的Java并且正在使用jGraphT来创建SimpleDirectedWeightedGraph。在创建并将其添加到图表后尝试在边缘上设置权重时,我收到此错误:

Exception in thread "main" java.lang.ClassCastException: ObservationsDAG$ObservationsDAGEdge cannot be cast to org.jgrapht.graph.DefaultWeightedEdge
at org.jgrapht.graph.AbstractBaseGraph.setEdgeWeight(Unknown Source)

我假设我需要在我的ObservationsDAGEdge课程中做一些事情,但是通过查看JGraphT文档,我被困在那是什么。我的edge类是否需要权重实例变量,是否需要提供getEdgeWeight()和setEdgeWeight()?

1 个答案:

答案 0 :(得分:0)

所以,我想出来了。我首先尝试扩展DefaultDirectedEdge,但随后getEdgeTarget()停止工作 - 可能是因为我需要实现开始/结束顶点。

在阅读完代码后,我尝试了对SimpleDirectedWeightedGraph进行子类化并覆盖了setEdgeWeight和getEdgeWeight,并为我的边缘类提供了一个权重实例变量。

这最终起到了性别的作用。