4
为什么BufferedInputStream将字段复制到局部变量而不是直接使用该字段
当我从中读取源代码时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直接使用field变量,如下所示: /** * Check …