可能重复:
Java 中空引用上的静态字段
我知道静态方法是在类级别的。所以我知道我不需要创建实例来调用静态方法。但我也知道我可以将静态方法称为实例方法。这是我感到困惑的地方,因为我期待NullPointerException
从空对象调用静态方法(如调用实例方法)。我真的很感激一些解释为什么我在NullPointerException
这里期望是错误的。
这是示例代码:
public class SampleClass {
public static int getSumStatic(int x, int y){
return x+y;
}
public int getDifferenceInstance(int x, int y){
return x-y;
}
}
public class TestClass {
public static void main (String[] args){
SampleClass sc=null;
System.out.println(SampleClass.getSumStatic(2, 2)); //as expected
//I was expecting NullPointerException in the next line, since I am accessing null object
System.out.println(sc.getSumStatic(4,5)); //static method , executes perfectly
System.out.println(sc.getDifferenceInstance(6,4));//throws NullPointerException
}
}