本帖最后由 浮出一个美 于 2013-12-30 17:05 编辑
代码如下:
public static void main(String[] args) {
InputStream in = System.in;
System.out.println(in);
}
控制台输出内容:java.io.BufferedInputStream@1fb8ee3
查看System源代码如下:
public final static InputStream in = nullInputStream();
private static InputStream nullInputStream() throws NullPointerException {
if (currentTimeMillis() > 0) {
return null;
}
throw new NullPointerException();
}
我的问题,nullInputStream()这个方法不是返回了一个null给静态变量in吗?
为什么返回的不是null?却还是一个装饰了inputSteam的缓冲区对象?
|
|