Лучше обрабатывать нулевые условия для действия сеттера

Перед вызовом БД я устанавливаю некоторые данные из карты в объект, используя его методы установки для вызова обновления БД. Теперь на карте могут отсутствовать некоторые данные.

Итак, я хочу знать, что вместо добавления кода для проверки нулевого значения для каждого поля перед добавлением данных в объект, существуют ли лучшие способы сделать это, уменьшив число IF для проверки нулевых значений перед вызовом методов установки.

У меня есть условия, как ниже, прямо сейчас

if(valueMap.get(ATTRIBUTE1_VALUE) != null){
  object.setAttribute1Value(valueMap.get(ATTRIBUTE1_VALUE));
}
if(valueMap.get(ATTRIBUTE2_VALUE) != null){
  object.setAttribute2Value(valueMap.get(ATTRIBUTE2_VALUE));
}
if(valueMap.get(ATTRIBUTE3_VALUE) != null){
  object.setAttribute3Value(valueMap.get(ATTRIBUTE3_VALUE));
}
if(valueMap.get(ATTRIBUTE4_VALUE) != null){
  object.setAttribute4Value(valueMap.get(ATTRIBUTE4_VALUE));
}
if(valueMap.get(ATTRIBUTE5_VALUE) != null){
  object.setAttribute5Value(valueMap.get(ATTRIBUTE5_VALUE));
}

Одним из способов, очевидно, является использование Reflection, но я хочу знать, есть ли другие способы сделать это.

1 ответ

Обратите внимание, что вы делаете get(ATTRIBUTE1_VALUE) звоните дважды для каждой ветви.

Вместо этого просто делай containsKey(ATTRIBUTE1_VALUE) в if проверять.

Если логика для заполнения valueMap не добавляет ноль для ключей, это нормально.

* Определите, где могут возникать нулевые значения, и остановите его там, вместо того, чтобы обрабатывать его дальше вниз по стеку, как это происходит здесь.

Другие вопросы по тегам