からソースコードを読んだとき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
ステートメントでデバッガを一時停止することはできません。そのエイリアス変数の理由かもしれません。それをそこに捨てたかっただけです。もちろん、私は推測しています。