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

Когда Java-массив выбрасывает исключительную ситуацию NullPointerException?

В Java каждый тип имеет значение по умолчанию, когда вы не инициализируете переменные класса, компилятор Java использует эти значения для инициализации их вместо вас. Null является значением по умолчанию для типа объекта, и вы также можете вручную присвоить null объекту в методе.

Object obj = null;

Но вы не можете использовать объект с null значением или (если используется null значение вместо объекта) объект, что вызовет NullPointerException.

Пример

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);
   }
}

-runtime exception

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

В документации Java, если вы пытаетесь выполнить NullPointerException-

  • Использование пустого объекта для вызова метода a (экземпляра).

  • Доступ, модификация, печать полей пустого значения (объекта).

  • Попытка доступа (печать/в использовании в предложении) длины пустого значения.

  • Приводит к пустому значению.

  • Доступ или модификация элемента/слота с пустым значением.

Если это массив,则为NullPointerException

В Java массивах типы ссылок подобны классам, поэтому сценарии occurrence NullPointerException почти идентичны. При использовании массивов occurrence NullPointerException-

  • Если попытаться доступ к элементу неинициализированного массива (равен null).

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

-runtime exception

Exception in thread "main" java.lang.NullPointerException
   at july_set3.Demo.main(Demo.java:6)
  • Если попытаться получить длину неинициализированного массива (равен null).

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

-runtime exception

Exception in thread "main" java.lang.NullPointerException
   at july_set3.Demo.main(Demo.java:6)
  • Если попытаться вызвать метод на неинициализированном массиве (равен null).

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

-runtime exception

Exception in thread "main" java.lang.NullPointerException
   at july_set3.Demo.main(Demo.java:6)
Вам может понравиться