我是新的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()?
答案 0 :(得分:0)
所以,我想出来了。我首先尝试扩展DefaultDirectedEdge,但随后getEdgeTarget()停止工作 - 可能是因为我需要实现开始/结束顶点。
在阅读完代码后,我尝试了对SimpleDirectedWeightedGraph进行子类化并覆盖了setEdgeWeight和getEdgeWeight,并为我的边缘类提供了一个权重实例变量。
这最终起到了性别的作用。