ダイクストラのアルゴリズムを使用するプログラムを作成しています。インポートされたマップ上の都市を表すノードを使用しています。マップ上の 2 つの都市の間にエッジを作成できます。私の問題は、すべてのエッジに分単位の距離を表す「重み」があり、2 つのエッジ間の距離を確認する関数があることです。
Cannot cast from Stad to Edge
しかし、次の行でエラー " " が発生し続けます
Edge<Stad> selectedEdge = (Edge) fvf.visaFörbLista.getSelectedValue();
ここで、"Stad" は都市を表し、"Edge" は端を表します。
FormVisaförbindelse fvf = new FormVisaförbindelse();
for(;;) {
try {
int svar = showConfirmDialog(null, fvf, "Ändra Förbindelser", JOptionPane.OK_CANCEL_OPTION);
if (svar != YES_OPTION) return;
if (fvf.visaFörbLista.isSelectionEmpty() == true) {
showMessageDialog(mainMethod.this, "En Förbindelse måste valjas.","Fel!", ERROR_MESSAGE);
return;
}
Edge<Stad> selectedEdge = (Edge) fvf.visaFörbLista.getSelectedValue();
FormÄndraförbindelse faf = new FormÄndraförbindelse();
af.setförbNamn(selectedEdge.getNamn());
for(;;) {
try {
int svar2 = showConfirmDialog(mainMethod.this, faf, "Ändra Förbindelse", OK_CANCEL_OPTION);
if (svar2 != YES_OPTION) return;
selectedEdge.setVikt(faf.getförbTid());
List<Edge<Stad>> edges = lg.getEdgesBetween(sB, sA);
for (Edge<Stad> edge : edges) {
if (edge.getNamn()==selectedEdge.getNamn()) {
edge.setVikt(faf.getförbTid());
}
}
return;
} catch(NumberFormatException e) {
showMessageDialog(mainMethod.this, "Ogiltig inmatning.","Fel!", ERROR_MESSAGE);
}
// etc