我得到了这段简单的代码,它调用另一个返回字符串值的类中的方法。我的程序到showinput框,我输入搜索词然后愚蠢的nullpointer在我的脸上得到了全部。我在这里拔毛,不知道该怎么做。它的案例3正在杀了我。我得到的只是java.lang.nullpointerexeption
String s = JOptionPane.showInputDialog( menu);
try
{
int i = Integer.parseInt(s);
switch(i)
{
case 1:
f = new BasicFile();
FileOpen = true;
//BasicFile.Backup(f);
display(f.getContents());
break;
case 2:
if (FileOpen == true){
display(f.getLines(), (f.getWords() - f.getNumber()), f.getChars(), f.getNumber());
}
else
display("Must open file first", "ERROR");
break;
case 3:
if (FileOpen == true){
String key = input();
display(f.Search(key));
}
else
display("Must open file first", "ERROR");
break;
case 4:
done = true;
break;
default:
display("This option is underfined", "Error");
break;
}
}
catch(NumberFormatException | NullPointerException | IOException e)
{
display(e.toString(), "Error");
}
}
答案 0 :(得分:0)
空引用有四种可能性。
1. FileOpen - might be null
2. input() - might throw null
3. f - might be null
4. display() - might throw null
逐步检查抛出npe的内容,只需在调试器中执行即可。