我正在创建一个使用 Dijkstra 算法的程序,我正在使用代表导入地图上的城市的节点,并且您可以在地图上的两个城市之间创建边。我的问题是每条边都有一个“权重”,它将以分钟为单位表示距离,并且我有一个功能,我想查看两条边之间的距离。
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