NullPointerException
NPE
Розгляд поняття значення null для змінної типу String. Якщо створити змінну рядкового типу, але не ініціалізувати її, вона набуває значення 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); } } }
Дякуємо за ваш відгук!
single
NullPointerException
Свайпніть щоб показати меню
NPE
Розгляд поняття значення null для змінної типу String. Якщо створити змінну рядкового типу, але не ініціалізувати її, вона набуває значення 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); } } }
Проведіть, щоб почати кодувати
Розробка системи для обробки електронних адрес співробітників.
Деякі записи електронної пошти можуть бути відсутніми (null).
Завдання — перевірити та обробити лише не-null та правильно відформатовані електронні адреси.
- Дано масив електронних адрес співробітників.
- Перебір кожної
emailу масиві. - Для кожного запису:
- Перевірити, чи
emailне єnull - А також чи містить символ
@
- Перевірити, чи
- Якщо обидві умови виконуються, вивести електронну адресу у консоль.
- В іншому випадку вивести:
"Invalid or missing email"
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат