当我需要按方法Scanner
关闭close()
时,我有一个如下代码,是否可以解释为什么我需要检查if(input != null
)?
Scanner input = new Scanner(new File("System.txt"));
...
Public void closeFile() {
if(input != null) {
input.close();
}
}
答案 0 :(得分:2)
任何人都可以解释为什么我需要检查是否(输入!= null)?
它只是一个null check
如果输入为null,它会抛出 NullPointerException 。
请考虑以下代码:
Scanner input = new Scanner(new File("System.txt"));
public void someMethod(){
input = doSomething(); //say doSomething() returns null
}
Public void closeFile()
{
if(input != null)
input.close();
}
现在,由于输入为空,如果你试图调用close(),它会抛出NPE>
答案 1 :(得分:0)
可以将input
设置为空其他地方吗?我注意到作业不是final
,因此可以重新分配(给定适当的访问权限)