0

Scannerbyメソッドを閉じる必要がclose()ある場合、次のようなコードがあります。チェックする必要がある理由を誰かが説明できますif(input != nullか?)

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

...

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

2 に答える 2

2

(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();
    }

ここで、入力がnullであるため、close()を呼び出そうとすると、NPE>がスローされます。

于 2013-01-16T10:56:31.977 に答える
0

他の場所でinputnullに設定できますか?割り当てはそうではないので、再割り当てされる可能性があることに注意してください(適切なアクセス権が与えられた場合)final

于 2013-01-16T10:56:10.740 に答える