Ответ
NullPointerException (NPE) — одна из самых распространённых и проблемных ошибок. Она возникает при попытке вызвать метод или обратиться к полю у объекта, который является null.
Пример возникновения:
String str = null;
int length = str.length(); // Выбрасывает NullPointerException
Почему это плохо: NPE часто происходит во время выполнения, а не компиляции, что усложняет отладку и нарушает работу приложения.
Лучшие практики для предотвращения:
- Использовать
Optionalдля явного обозначения возможного отсутствия значения. - Явные проверки:
if (obj != null)перед использованием. - Аннотации: Использовать
@NonNull/@Nullable(Lombok, JSR-305) для статического анализа. - Валидация аргументов:
Objects.requireNonNull(param, "message")в публичных методах. - Project Valhalla (в будущем): Примитивные объекты (value types) могут решить проблему на уровне языка.
Также в разработке важно избегать утечек памяти, состояний гонки (race conditions) в многопоточном коде и «магических чисел» без пояснений.