Por que não estou recebendo o NullPointerException? [duplicado]
Duplicata Possível:
Campos estáticos em uma referência nula em Java
Eu entendo que os métodos estáticos estão no nível de classe. Portanto, estou ciente de que não preciso criar uma instância para chamar métodos estáticos. Mas também estou ciente de que posso chamar o método estático LIKE de um método de instância. Isto é onde eu estou confuso, porque eu estava esperando umNullPointerException
enquanto chama o método estático do objeto nulo (como no método de instância de chamada). Eu realmente aprecio alguma explicação sobre por que eu estava errado em esperar umaNullPointerException
Aqui.
Aqui está o código de exemplo:
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
}
}