Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте NullPointerException | Рядок
Основи Java

bookNullPointerException

NPE

NullPointerException або NPE — це помилка, з якою знайомий кожен програміст Java. Ця помилка є рекордсменом за кількістю роздратування серед програмістів.

Спочатку розглянемо поняття значення null для змінної типу рядок. Коли ми створюємо змінну типу рядок, але забуваємо її ініціалізувати, вона набуває значення null. Для порівняння, якщо ми не ініціалізуємо змінну типу int, вона набуває значення 0.

Розглянемо приклад змінної типу рядок зі значенням null:

Main.java

Main.java

copy
12345678
package com.example; public class Main { public static void main(String[] args) { String string = null; System.out.println(string); } }

Як бачимо, на екрані виводиться null, і код, здається, працює. Але тепер спробуємо використати будь-який метод зі змінною зі значенням null:

Main.java

Main.java

copy
123456789
package 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

Main.java

copy
123456789101112
package 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 та правильно відформатовані електронні адреси.

  1. Дано масив електронних адрес співробітників.
  2. Перебір кожної email у масиві.
  3. Для кожного запису:
    • Перевірити, що email не є null
    • А також перевірити, чи містить символ @
  4. Якщо обидві умови виконуються, вивести електронну адресу у консоль.
  5. В іншому випадку вивести:
    "Invalid or missing email"

Рішення

solution.java

solution.java

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 5. Розділ 5
single

single

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

close

Awesome!

Completion rate improved to 2.7

bookNullPointerException

Свайпніть щоб показати меню

NPE

NullPointerException або NPE — це помилка, з якою знайомий кожен програміст Java. Ця помилка є рекордсменом за кількістю роздратування серед програмістів.

Спочатку розглянемо поняття значення null для змінної типу рядок. Коли ми створюємо змінну типу рядок, але забуваємо її ініціалізувати, вона набуває значення null. Для порівняння, якщо ми не ініціалізуємо змінну типу int, вона набуває значення 0.

Розглянемо приклад змінної типу рядок зі значенням null:

Main.java

Main.java

copy
12345678
package com.example; public class Main { public static void main(String[] args) { String string = null; System.out.println(string); } }

Як бачимо, на екрані виводиться null, і код, здається, працює. Але тепер спробуємо використати будь-який метод зі змінною зі значенням null:

Main.java

Main.java

copy
123456789
package 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

Main.java

copy
123456789101112
package 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 та правильно відформатовані електронні адреси.

  1. Дано масив електронних адрес співробітників.
  2. Перебір кожної email у масиві.
  3. Для кожного запису:
    • Перевірити, що email не є null
    • А також перевірити, чи містить символ @
  4. Якщо обидві умови виконуються, вивести електронну адресу у консоль.
  5. В іншому випадку вивести:
    "Invalid or missing email"

Рішення

solution.java

solution.java

Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 5. Розділ 5
single

single

some-alt