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