我有一个包含 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
提交
取消