当我需要关闭Scanner
方法close()
时,我有如下代码,谁能解释我为什么需要检查if(input != null
)好吗?
Scanner input = new Scanner(new File("System.txt"));
...
Public void closeFile() {
if(input != null) {
input.close();
}
}
当我需要关闭Scanner
方法close()
时,我有如下代码,谁能解释我为什么需要检查if(input != null
)好吗?
Scanner input = new Scanner(new File("System.txt"));
...
Public void closeFile() {
if(input != null) {
input.close();
}
}
谁能解释一下为什么我需要检查 if(input != 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>
可以在其他地方input
设置为 null吗?我注意到分配不是,因此可以重新分配(给予适当的访问权限)final