Saat saya membaca source code dari java.io.BufferedInputStream.getInIfOpen()
, saya bingung kenapa menulis kode seperti ini:
/**
* 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;
}
Mengapa menggunakan alias daripada menggunakan variabel bidang in
secara langsung seperti di bawah ini:
/**
* 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;
}
Bisakah seseorang memberikan penjelasan yang masuk akal?
if
pernyataan?
Eclipse
, Anda tidak dapat menjeda debugger padaif
pernyataan. Mungkin menjadi alasan variabel alias itu. Hanya ingin membuangnya ke sana. Saya berspekulasi, tentu saja.