Исключение нулевого указателя в Java: реализация и примеры



Эта статья предоставит вам подробные и всесторонние знания о том, как исключение нулевого указателя работает в Java с множеством примеров.

Исключения необходимы для беспрепятственного выполнения кода и позволяют программистам узнать об ошибке, которую необходимо устранить. В этой статье мы сосредоточимся на исключении нулевого указателя в Java в следующем порядке:

Что такое исключение нулевого указателя в Java?





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

  • Для вызова определенного метода из нулевого объекта.
  • Для доступа или изменения поля нулевого объекта.
  • Рассматривая длину нуля, как если бы это был массив.
  • При доступе или изменении слотов нулевого объекта.
  • Выбрасывание null как бросаемое значение.
  • Попытка выполнить синхронизацию по нулевому объекту.

Зачем нам нужно нулевое значение?



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

Лучший и простой способ создать хотя бы один экземпляр класса - объявить все конструкторы закрытыми. Затем они создают общедоступный метод, который возвращает уникальный экземпляр класса.

// Использовать функцию randomUUID. import java.util.UUID import java.io. * class Singleton {// Здесь мы инициализируем значения single и ID равными нулю. private static Singleton single = null private String ID = null private Singleton () {/ * Сделайте его закрытым, чтобы предотвратить создание новых экземпляров класса Singleton. * / // Создаем случайный идентификатор ID = UUID.randomUUID (). ToString ()} public static Singleton getInstance () {if (single == null) single = new Singleton () return single} public String getID () {return this.ID}} // Код драйвера открытый класс TestSingleton {public static void main (String [] args) {Singleton s = Singleton.getInstance () System.out.println (s.getID ())}} //

Вывод:



null-pointer

как установить окна eclipse

Приведенный выше пример является статическим экземпляром одноэлементного класса. Экземпляр инициализируется не более одного раза в методе Singleton get Instance.

разница между final finally и finalize

Как избежать исключения нулевого указателя в Java?

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

// программа для демонстрации вызова метода // при нулевом значении вызывает NullPointerException import java.io. * class GFG {public static void main (String [] args) {// Инициализация строковой переменной нулевым значением String ptr = null // Проверяем, равен ли ptr. нулю или работает нормально. try {// Эта строка кода генерирует исключение NullPointerException // потому что ptr имеет значение null if (ptr.equals ('gfg')) System.out.print ('Same') else System.out.print ('Not Same')} catch (NullPointerException e) {System.out.print ('NullPointerException Caught')}}}

Вывод:

Постоянный контроль аргументов метода

Всегда помните, что перед выполнением тела нового метода мы должны обеспечить его аргументы для нулевых значений и продолжить выполнение метода. Тогда и только тогда, когда аргументы проверены должным образом. В противном случае он вызовет исключение «IllegalArgumentException» и вызовет вызывающий метод, что что-то не так с переданными аргументами.

// программа для проверки того, являются ли параметры нулевыми или нет, перед // их использованием. import java.io. * class GFG {public static void main (String [] args) {// String s устанавливает пустую строку и вызывает getLength () String s = '' try {System.out.println (getLength (s) )} catch (IllegalArgumentException e) {System.out.println ('IllegalArgumentException поймано')} // Строке s присвоено значение и вызывается getLength () s = 'GeeksforGeeks' try {System.out.println (getLength (s) )} catch (IllegalArgumentException e) {System.out.println ('IllegalArgumentException catch')} // Установка s как null и вызов getLength () s = null try {System.out.println (getLength (s))} catch ( IllegalArgumentException e) {System.out.println ('IllegalArgumentException поймано')}} // Функция для возврата длины строки s. // Выдает исключение IllegalArgumentException, если s равно null. public static int getLength (String s) {if (s == null) throw new IllegalArgumentException ('Аргумент не может быть нулевым') return s.length ()}}

Вывод:

Использование тернарного оператора

Чтобы избежать исключения NullPointerException, используется тернарный оператор. Проверяется логическое выражение, и если выражение истинно, возвращается значение1, в противном случае возвращается значение2. Можно использовать тернарный оператор для обработки нулевых указателей: Правое изображение - это соответствующий результат.

// Программа Java, демонстрирующая, что мы можем использовать // тернарный оператор, чтобы избежать исключения NullPointerException. import java.io. * class GFG {public static void main (String [] args) {// Инициализация строковой переменной нулевым значением String str = null String message = (str == null)? '': str.substring (0,5) System.out.println (message) str = 'Edureka_Java_Blog' message = (str == null)? '': str.substring (0,5) System.out.println (сообщение)}}

Вывод:

Эдурек

На этом мы подошли к концу исключения нулевого указателя в Java. Надеюсь, вы получили представление об исключении нулевого указателя.

Проверьте от Edureka, надежной компании по онлайн-обучению с сетью из более чем 250 000 довольных учащихся по всему миру. Курс обучения и сертификации по Java J2EE и SOA от Edureka предназначен для студентов и профессионалов, которые хотят стать Java-разработчиками. Курс разработан, чтобы дать вам хорошее начало в программировании на Java и обучить вас как основным, так и продвинутым концепциям Java, а также различным средам Java, таким как Hibernate и Spring.

шаблоны проектирования на php с примером

Есть вопрос к нам? Пожалуйста, укажите это в разделе комментариев этого блога «Исключение нулевого указателя в Java», и мы свяжемся с вами как можно скорее.