为什么一流水平与空
问题描述:
属性的工作,我觉得以下将抛出NullPointerException为什么一流水平与空
class N {
static int i;
public static void main(String ... args) {
System.out.println(((N)null).i);
}
}
但事实并非如此。为什么?
答
因为i
是静态(class level)成员。它存在于班级,为它的每一个对象。所以它确实不需要引用对象,所以这部分((N)null)
实际上被忽略了,除了类型推断。它可以并且应该被替换为N.i
。