[Java] Come mai invocare un metodo (statico) su un riferimento null non genera NullPointerException?


Answers

I metodi statici non hanno bisogno di un riferimento all'oggetto. Quindi puoi chiamarlo anche il riferimento all'oggetto è nullo. Ecco come funziona il metodo principale.

Prova a rimuovere la designazione statica dall'oggetto per vedere l'eccezione del puntatore nullo.

Question

Ho scritto questo programma in Java

public class Why {

  public static void test() {
    System.out.println("Passed");
  }

  public static void main(String[] args) {
    Why NULL = null;
    NULL.test();
  }

}

Ho letto che invocare un metodo su un oggetto null provoca NullPointerException , eppure il programma di cui sopra non lo fa? Perchè è questo? Non capisco qualcosa correttamente?




Dovresti attivare i vari avvisi nel tuo IDE. È probabile che vedrete un avvertimento sull'accesso a un membro statico in modo non statico.

Si potrebbe fare qualcosa come (Why) (null) .test (), è solo usando il (Why) (null) per ottenere la classe.




Links