为什么类级属性适用于Null

时间:2011-04-27 00:23:06

标签: java nullpointerexception class-attributes

我认为以下内容会抛出NullPointerException

class N { 
    static int i;
    public static void main( String ... args ) { 
        System.out.println( ((N)null).i );
    }
}

但事实并非如此。为什么呢?

1 个答案:

答案 0 :(得分:6)

因为i是静态(类级别)成员。它适用于类,适用于它的每个对象。所以它确实不需要引用对象,所以除了类型推断之外,实际上忽略了这部分((N)null)。它可以而且应该替换为N.i