Что нужно сделать, чтобы избежать NullPointerException?

Не разыменовывайте ссылку, пока её допустимость не определена контрактом: проверяйте null на границах, используйте безопасные сравнения и не возвращайте неожиданный null из своих методов.

Короткий ответ

Что ответить на собеседовании

Не разыменовывайте ссылку, пока её допустимость не определена контрактом: проверяйте null на границах, используйте безопасные сравнения и не возвращайте неожиданный null из своих методов.

Подробный разбор

Ответ с пояснениями

Не разыменовывайте ссылку, пока её допустимость не определена контрактом: проверяйте null на границах, используйте безопасные сравнения и не возвращайте неожиданный null из своих методов.

Например, "ok".equals(value) безопасно при null, а value.equals("ok") — нет. Для обязательного аргумента можно применить Objects.requireNonNull; для необязательного — явно обработать отсутствие. Optional уместен в некоторых возвращаемых значениях, но не лечит все причины NPE. Проверьте вложенные поля и unboxing: Integer со значением null тоже вызывает ошибку при преобразовании в int. Ловить NPE повсюду вместо исправления контракта — плохой подход.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее