Как написать код, который вызовет NullPointerException в Java?

«Как написать код, который вызовет NullPointerException в Java?» — вопрос из категории Java, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

NullPointerException (NPE) возникает при попытке использовать ссылку, которая указывает на null, как на существующий объект.

Простейший пример:

String text = null;
int length = text.length(); // NullPointerException здесь

Другие частые сценарии в контексте тестирования:

  1. Тестирование методов, не проверяющих входные параметры:
    public void processUser(User user) {
        String name = user.getName(); // NPE, если user == null
    }
    // В тесте:
    @Test
    void processUser_NullUser_ThrowsException() {
        assertThrows(NullPointerException.class, () -> processor.processUser(null));
    }
  2. Работа с коллекциями, возвращающими null:
    Map<String, String> map = new HashMap<>();
    String value = map.get("nonExistentKey"); // value = null
    value.toUpperCase(); // NPE
  3. Автораспаковка (unboxing) null в примитив:
    Integer count = null;
    int primitiveCount = count; // NPE при распаковке

Для QA: Искусственное создание NPE полезно для написания негативных тестов, проверяющих устойчивость системы к некорректным данным и корректность обработки исключений.