0

私は新しい 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 のドキュメントを見ると、それが何であるかがわかりません。私のエッジ クラスにはウェイト インスタンス変数が必要ですか? getEdgeWeight() と setEdgeWeight() を提供する必要がありますか?

4

1 に答える 1

0

だから、私はこれを理解しました。最初に DefaultDirectedEdge を拡張しようとしましたが、getEdgeTarget() が機能しなくなりました。おそらく、開始/終了頂点を実装する必要があるためです。

コードを読んだ後、SimpleDirectedWeightedGraph のサブクラス化を試み、setEdgeWeight と getEdgeWeight をオーバーライドして、エッジ クラスに重みインスタンス変数を与えました。

それは最終的にsspectectedとして機能しました。

于 2011-09-25T06:36:54.817 に答える