Wenn ich den Quellcode von lese java.io.BufferedInputStream.getInIfOpen()
, bin ich verwirrt darüber, warum er Code wie diesen geschrieben hat:
/**
* 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;
}
Warum wird der Alias verwendet, anstatt die Feldvariable in
direkt wie unten zu verwenden:
/**
* 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;
}
Kann jemand eine vernünftige Erklärung geben?
if
Aussage wirklich nicht pausieren ?
Eclipse
können Sie einen Debugger für eineif
Anweisung nicht anhalten . Könnte ein Grund für diese Aliasvariable sein. Ich wollte das nur rauswerfen. Ich spekuliere natürlich.