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 indirectamente 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?
ifdeclaración?
Eclipse, no puede pausar un depurador en unaifdeclaración. Podría ser una razón para esa variable de alias. Solo quería tirar eso por ahí. Especulo, por supuesto.