我有一個包含 type 對象的圖形GraphNodes。這些節點包含一個對象,該對象City具有是否被感染的屬性。我想遍歷所有節點并檢查城市是否被感染。在我的案例中,我有一個getInfo返回類型對象的通用方法。但是當我嘗試鏈接另一種方法或獲取屬性時,我看不到它們,就好像它們不可用一樣。代碼中的所有課程都來自大學,所以我無法添加/刪除方法。我已經嘗試過,但我仍然無法獲得這些方法。ECityforeach代碼:import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.LinkedList;import java.util.Stack;import java.util.StringTokenizer;import java.util.LinkedList;class City { String osnovna_granka; boolean zarazen; City(String osnovna_granka, boolean zarazen) { this.osnovna_granka = osnovna_granka; this.zarazen = zarazen; } @Override public String toString() { if (zarazen == true) { return osnovna_granka + " zarazen"; } else { return osnovna_granka + " nezarazen"; } }}class Graph { int num_nodes; GraphNode<City> adjList[]; @SuppressWarnings("unchecked") public Graph(int num_nodes) { this.num_nodes = num_nodes; adjList = (GraphNode<City>[]) new GraphNode[num_nodes]; } int adjacent(int x, int y) { // proveruva dali ima vrska od jazelot so // indeks x do jazelot so indeks y return (adjList[x].containsNeighbor(adjList[y])) ? 1 : 0; } void addEdge(int x, int y) { // dodava vrska od jazelot so indeks x do jazelot so indeks y if (!adjList[x].containsNeighbor(adjList[y])) { adjList[x].addNeighbor(adjList[y]); } } void deleteEdge(int x, int y) { adjList[x].removeNeighbor(adjList[y]); } @Override public String toString() { String ret = new String(); for (int i = 0; i < this.num_nodes; i++) { ret += i + ": " + adjList[i] + "\n"; } return ret; }}class GraphNode<E> { private int index;//index (reden broj) na temeto vo grafot private E info; private LinkedList<GraphNode<E>> neighbors;
1 回答

阿晨1998
TA貢獻2037條經驗 獲得超6個贊
GraphNode 是一個通用類型,您沒有指定類型,IDE 無法推斷類型,因此無法建議任何方法。在 for 循環中,您需要指定 GraphNode 的類型。
for(GraphNode<City> gn: g.adjList)
添加回答
舉報
0/150
提交
取消