English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Quando l'array Java lancia l'eccezione NullPointerException?

In Java, ogni tipo ha un valore predefinito, quando non inizializzi le variabili d'istanza della classe, il compilatore Java utilizza questi valori per inizializzarle al tuo posto. Null è il valore predefinito per i tipi oggetto, puoi anche assegnare manualmente null agli oggetti nei metodi.

Object obj = null;

Ma non puoi utilizzare un oggetto con valore null o (se utilizzi un valore null invece dell'oggetto) l'oggetto, altrimenti viene sollevata un'eccezione NullPointerException.

Esempio

public class Demo {
   String name = "Krishna";
   int age = 25;
   public static void main(String args[]) {
      Demo obj = null;
      System.out.println(obj.age);
      System.out.println(obj.name);
   {}
{}

Eccezione in esecuzione

Exception in thread "main" java.lang.NullPointerException
   at july_set3.Demo.main(Demo.java:11)

Secondo la documentazione di Java, se provi a eseguire NullPointerException-

  • Chiamare un metodo a con un oggetto nullo (istanza).

  • Accedere, modificare, stampare i campi di un valore nullo (oggetto).

  • Tentativo di accedere (stampare/uso in una frase) la lunghezza di un valore nullo.

  • Lancia un valore nullo.

  • Accedere o modificare un elemento/slot con valore nullo.

Se è un array, è un NullPointerException

In un array Java, i tipi di riferimento sono come le classi, quindi la scena di NullPointerException è quasi simile. Quando si utilizza un array, si verifica un NullPointerException-

  • Se si tenta di accedere a un elemento dell'array non inizializzato (null).

public class Demo {
   public static void main(String args[]) {
      int myArray[] = null;
      System.out.println(myArray[5]);
   {}
{}

Eccezione in esecuzione

Exception in thread "main" java.lang.NullPointerException
   at july_set3.Demo.main(Demo.java:6)
  • Se si tenta di ottenere la lunghezza di un array non inizializzato (null).

public class Demo {
   public static void main(String args[]) {
      int myArray[] = null;
      System.out.println(myArray.length);
   {}
{}

Eccezione in esecuzione

Exception in thread "main" java.lang.NullPointerException
   at july_set3.Demo.main(Demo.java:6)
  • Se si tenta di chiamare un metodo su un array non inizializzato (null).

public class Demo {
   public static void main(String args[]) {
      int myArray[] = null;
      System.out.println(myArray.toString());
   {}
{}

Eccezione in esecuzione

Exception in thread "main" java.lang.NullPointerException
   at july_set3.Demo.main(Demo.java:6)