Cuando leo el código fuente de java.io.BufferedInputStream.getInIfOpen()
, estoy confundido acerca de por qué escribió un código como este:
/**
* 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;
}
¿Por qué usa el alias en lugar de usar la variable de campo in
directamente como se muestra a continuación?
/**
* 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;
}
¿Alguien puede dar una explicación razonable?
if
declaración?
Eclipse
, no puede pausar un depurador en unaif
declaración. Podría ser una razón para esa variable de alias. Solo quería tirar eso por ahí. Especulo, por supuesto.