NullPointerException
NPE
NullPointerException або NPE — це помилка, з якою знайомий кожен програміст Java. Ця помилка є рекордсменом за кількістю роздратування серед програмістів.
Спочатку розглянемо поняття значення null для змінної типу рядок. Коли ми створюємо змінну типу рядок, але забуваємо її ініціалізувати, вона набуває значення null.
Для порівняння, якщо ми не ініціалізуємо змінну типу int, вона набуває значення 0.
Розглянемо приклад змінної типу рядок зі значенням null:
Main.java
12345678package com.example; public class Main { public static void main(String[] args) { String string = null; System.out.println(string); } }
Як бачимо, на екрані виводиться null, і код, здається, працює. Але тепер спробуємо використати будь-який метод зі змінною зі значенням null:
Main.java
123456789package com.example; public class Main { public static void main(String[] args) { String string = null; string.toLowerCase(); System.out.println(string); } }
При спробі викликати будь-який метод для змінної рядка зі значенням null виникає NullPointerException.
Може здатися, що ця помилка не є серйозною, але згодом, коли ви будете отримувати значення, які не писали особисто, ви часто з нею стикатиметесь. Тому важливо вже зараз зрозуміти, як вирішувати цю помилку.
Способи уникнення NPE:
- Бути уважним. Якщо створюєте змінну рядка, перевірте, чи ініціалізували її;
- Використовувати перевірку на null перед використанням змінної, наприклад.
Main.java
123456789101112package com.example; public class Main { public static void main(String[] args) { String string = null; if (string == null) { // null check System.out.println("Can't use methods with string, because value is null"); } else { System.out.println(string); } } }
Swipe to start coding
Розробка системи для обробки електронних адрес співробітників.
Деякі записи електронної пошти можуть бути відсутніми (null).
Завдання — перевірити та обробити лише не-null та правильно відформатовані електронні адреси.
- Дано масив електронних адрес співробітників.
- Перебір кожної
emailу масиві. - Для кожного запису:
- Перевірити, що
emailне єnull - А також перевірити, чи містить символ
@
- Перевірити, що
- Якщо обидві умови виконуються, вивести електронну адресу у консоль.
- В іншому випадку вивести:
"Invalid or missing email"
Рішення
solution.java
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 2.7
NullPointerException
Свайпніть щоб показати меню
NPE
NullPointerException або NPE — це помилка, з якою знайомий кожен програміст Java. Ця помилка є рекордсменом за кількістю роздратування серед програмістів.
Спочатку розглянемо поняття значення null для змінної типу рядок. Коли ми створюємо змінну типу рядок, але забуваємо її ініціалізувати, вона набуває значення null.
Для порівняння, якщо ми не ініціалізуємо змінну типу int, вона набуває значення 0.
Розглянемо приклад змінної типу рядок зі значенням null:
Main.java
12345678package com.example; public class Main { public static void main(String[] args) { String string = null; System.out.println(string); } }
Як бачимо, на екрані виводиться null, і код, здається, працює. Але тепер спробуємо використати будь-який метод зі змінною зі значенням null:
Main.java
123456789package com.example; public class Main { public static void main(String[] args) { String string = null; string.toLowerCase(); System.out.println(string); } }
При спробі викликати будь-який метод для змінної рядка зі значенням null виникає NullPointerException.
Може здатися, що ця помилка не є серйозною, але згодом, коли ви будете отримувати значення, які не писали особисто, ви часто з нею стикатиметесь. Тому важливо вже зараз зрозуміти, як вирішувати цю помилку.
Способи уникнення NPE:
- Бути уважним. Якщо створюєте змінну рядка, перевірте, чи ініціалізували її;
- Використовувати перевірку на null перед використанням змінної, наприклад.
Main.java
123456789101112package com.example; public class Main { public static void main(String[] args) { String string = null; if (string == null) { // null check System.out.println("Can't use methods with string, because value is null"); } else { System.out.println(string); } } }
Swipe to start coding
Розробка системи для обробки електронних адрес співробітників.
Деякі записи електронної пошти можуть бути відсутніми (null).
Завдання — перевірити та обробити лише не-null та правильно відформатовані електронні адреси.
- Дано масив електронних адрес співробітників.
- Перебір кожної
emailу масиві. - Для кожного запису:
- Перевірити, що
emailне єnull - А також перевірити, чи містить символ
@
- Перевірити, що
- Якщо обидві умови виконуються, вивести електронну адресу у консоль.
- В іншому випадку вивести:
"Invalid or missing email"
Рішення
solution.java
Дякуємо за ваш відгук!
single