我有 4 个类:边缘、图形、节点和最短路径。我想在我的最短路径类的静态主目录中调用我的图形类中的方法。我得到的错误是“无法从类型图中对非静态方法 readFile() 进行静态引用”。我会很感激我卡住的任何帮助:(!
public class edge<E>{}
public class node<E> extends edge<E>{}
public class graph<E> {
public node<E> BFS(E value)
{
if (adjList.isEmpty())
return (null);
ArrayList<node<E>> visitedNodes = new ArrayList<node<E>>();
node<E> sourceNode = adjList.get(0);
sourceNode.setVisited(true);
visitedNodes.add(sourceNode);
node<E> currNode = null;
while(!visitedNodes.isEmpty())
{
currNode = visitedNodes.get(0);
visitedNodes.remove(0);
if(currNode.getData() == value)
return (currNode);
//ListIterator<edge<E>> itr = currNode.incidentEdges.listIterator();
for(node<E> adjNode : adjList)
{
adjNode = adjNode.getChild();
if(!adjNode.isVisited())
{
adjNode.setVisited(true);
visitedNodes.add(adjNode);
}
}
}
return (null);
}
public void readFile()
{
File file = new File("Enron-Email.txt");
try
{
Scanner scanner = new Scanner(file);
while (scanner.hasNextLine())
{
String line = scanner.nextLine();
if(line.trim().startsWith("#"))
{
continue;
}
String[] tokens = line.split("\\t");
Integer parent = Integer.parseInt(tokens[0]);
Integer child = Integer.parseInt(tokens[1]);
addEdge((E) parent, (E) child);
}
scanner.close();
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
}
}
public class shortestpath{
public static void main(Integer source, Integer dest) {
graph<E> myGraph = new graph<E>();
myGraph.readFile();
myGraph.BFS(source);
}
}