Khi tôi đọc mã nguồn từ java.io.BufferedInputStream.getInIfOpen()
, tôi bối rối không hiểu tại sao nó lại viết mã như thế này:
/**
* 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;
}
Tại sao nó lại sử dụng bí danh thay vì sử dụng in
trực tiếp biến trường như bên dưới:
/**
* 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;
}
Ai đó có thể đưa ra một lời giải thích hợp lý?
if
tuyên bố?
Eclipse
, bạn không thể tạm dừng trình gỡ lỗi trên mộtif
câu lệnh. Có thể là một lý do cho biến bí danh đó. Chỉ muốn ném nó ra ngoài kia. Tôi suy đoán, tất nhiên.