为什么我没有收到 NullPointerException?
2022-09-03 06:14:57
可能的重复项:
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
}
}