Задать вопрос

Нужна ли проверка Map на null?

Добрый день!

У меня есть некая функция:
public Map<String, Object> getTestMap(MyClass myObject) {
    Map<String, Object> myResultMap = new HashMap<String, Object>();
    myResultMap.put("myKey", myObject.getMyValue());

    return myResultMap;
}

и следующая строка кода:
Map<String, Object> resultMap = getTestMap(myObject);

Подскажите, стоит ли в дальнейшем проверять resultMap на null, когда я захочу получить значения по ключу?
Например так:
Map<String, Object> resultMap = getTestMap(myObject);
if (resultMap != null) {
    Object myObject = resultMap.myKey;
}
  • Вопрос задан
  • 1341 просмотр
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
@AndrewStr
1. Вы неправильно извлекаете значение из map по ключу, надо использовать метод get -> resultMap.get(myKey);
2. Проверка на null при обращении к resultMap не нужна, поскольку вы создаете пустую мепу в методе getTestMap и resultMap никогда не null;
3. Проверка на null необходима в методе getTestMap, потому что вы вызываете myObject.getMyValue() без проверки на null, вот здесь NullPointerException может возникнуть, если метод будет вызван с параметром значение которого равно null.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
zagayevskiy
@zagayevskiy Куратор тега Java
Android developer at Yandex
Для того, чтобы не возникало таких вопросов, рекомендую все методы, аргументы и поля помечать @NonNull и @Nullable.
Все поля и локальные переменные, которые по логике не изменяются - final.
Объявление переменных максимально близко к месту их использования.

Ответ на вопрос - нет, в данном случае проверять не надо. А вот если метод библиотечный и не помечен аннотацией - надо.

Ещё лучше взять Kotlin и не мучаться:)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы