gpt4 book ai didi

java - 无法进行静态引用..或未处理的异常类型

转载 作者:行者123 更新时间:2023-12-01 12:41:33 25 4
gpt4 key购买 nike

我遇到了问题。我试图从第一个 block 中的 execute() 方法引用下面第二个 block 中的 displayList() 方法。

尽管如此,我在下面写下它的方式却给出了错误“无法对非静态方法进行静态引用”。

如果我尝试将 displayList() 方法设置为静态,那么对于扫描仪对象 inputFile 会出现同样的错误,因为 displayList 无法看到它。然后,这需要我将 inputFile 和字符串文件也设为静态。但后来我遇到了 inputFile 行抛出的问题 - 它说我有一个未处理的异常 FileNotFoundException

由于每一个事物都是静态的,我无法使用为处理此错误而创建的 List 类的构造函数。

好的。这些是代码的相关部分:

    static void execute(int choice){
switch (choice){

case 1:List.displayList();
runNextLoop();
break;

case default:return;

}
}

    static class List{  

String file = "List.txt";
Scanner inputFile = new Scanner (new FileReader(file));

public List() throws IOException{
}

void displayList(){
while (inputFile.hasNextLine()){
System.out.println(inputFile.nextLine());
}

}

如果我将 List 的所有成员和方法设为静态,则无法处理该异常。如果不这样做,那么我就无法从类外部对我想要调用的方法进行正确的引用。

我应该怎么做才能解决这个问题?

最佳答案

如果我关注你,请更改此内容

case 1:List.displayList();

case 1:new List().displayList(); // <-- not static.

您可能需要实际传递一个 List 引用(名称不好,因为它与 java.util.List 冲突)-

static void execute(List list, int choice){
switch (choice) {
case 1: // <-- I assume you have more cases and this is just a short excerpt.
list.displayList();
runNextLoop();
break;
case default:
return;
}
}

关于java - 无法进行静态引用..或未处理的异常类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25052693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com