Когда я читаю исходный код java.io.BufferedInputStream.getInIfOpen()
, я не понимаю, почему он написал такой код:
/**
* Check to make sure that underlying input stream has not been
* nulled out due to close; if not return it;
*/
private InputStream getInIfOpen() throws IOException {
InputStream input = in;
if (input == null)
throw new IOException("Stream closed");
return input;
}
Почему используется псевдоним вместо использования переменной поля in
напрямую, как показано ниже:
/**
* Check to make sure that underlying input stream has not been
* nulled out due to close; if not return it;
*/
private InputStream getInIfOpen() throws IOException {
if (in == null)
throw new IOException("Stream closed");
return in;
}
Может кто-нибудь дать разумное объяснение?
if
заявлении?
Eclipse
, вы не можете приостановить отладчик дляif
оператора. Может быть причиной этой переменной псевдонима. Просто хотел выбросить это там. Я, конечно, размышляю.