0

当我需要关闭Scanner方法close()时,我有如下代码,谁能解释我为什么需要检查if(input != null)好吗?

Scanner input = new Scanner(new File("System.txt"));

...

Public void closeFile() {
   if(input != null) {
          input.close();
   }
}
4

2 回答 2

2

谁能解释一下为什么我需要检查 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>

于 2013-01-16T10:56:31.977 回答
0

可以在其他地方input设置为 null吗?我注意到分配不是,因此可以重新分配(给予适当的访问权限)final

于 2013-01-16T10:56:10.740 回答