Исключения необходимы для беспрепятственного выполнения кода и позволяют программистам узнать об ошибке, которую необходимо устранить. В этой статье мы сосредоточимся на исключении нулевого указателя в 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 ())}} //
Вывод:
как установить окна 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», и мы свяжемся с вами как можно скорее.