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