NullPointerException: явно задайте контракт Null-безопасность начинается с договора о данных. Если аргумент обязателен, проверяйте его на границе:
Objects.requireNonNull(user, "user");
Objects.requireNonNull(user.getName(), "user.name");
Для сравнения двух nullable-значений используйте Objects.equals(a, b). Вызов "ready".equals(value) тоже безопасен для nullable value. String.valueOf(obj) для null-ссылки типа Object вернёт строку "null". Это удобно при диагностике, но не исправляет отсутствующие бизнес-данные. Optional может выразить отсутствие результата. @Nullable и @NotNull полезны анализаторам и фреймворкам, однако сами по себе не заставляют JVM проверять каждый вызов. Если метод возвращает коллекцию, обычно проще вернуть пустую коллекцию. #Java
Java Библиотека | Мы в Телеграм
Objects.requireNonNull(user, "user");
Objects.requireNonNull(user.getName(), "user.name");
Для сравнения двух nullable-значений используйте Objects.equals(a, b). Вызов "ready".equals(value) тоже безопасен для nullable value. String.valueOf(obj) для null-ссылки типа Object вернёт строку "null". Это удобно при диагностике, но не исправляет отсутствующие бизнес-данные. Optional может выразить отсутствие результата. @Nullable и @NotNull полезны анализаторам и фреймворкам, однако сами по себе не заставляют JVM проверять каждый вызов. Если метод возвращает коллекцию, обычно проще вернуть пустую коллекцию. #Java
Java Библиотека | Мы в Телеграм
Просмотры: 236