에서 소스 코드를 읽을 때 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
. 수 그 별칭 변수에 대한 이유. 그냥 그걸 버리고 싶었어요. 물론 추측합니다.