Заполните Java-объект, используя карту - PullRequest
1 голос
/ 22 мая 2019

У меня есть Map<String, Object>. Используя это, я должен заполнить один объект Java. Например,

public void setBaseAttributes(BaseObject baseObj) {
  Map<String, Object> map = // some method call;
  org.apache.commons.beanutils.BeanUtils.populate(baseObj, map);
 }

Я использовал BeanUtils, но застрял, поскольку BeanUtils не обрабатывает BigDecimal. У моего baseObj есть BigDecimal, и я не могу избавиться от него.

Вопрос к экспертам:

  • Есть ли лучшая альтернатива, которую я могу использовать здесь?
  • Используя BeanUtils, можем ли мы что-то сделать для обработки BigDecimal?

1 Ответ

0 голосов
/ 22 мая 2019

Судя по вашему комментарию, у вас возникают проблемы при работе с нулевым или отсутствующим значением BigDecimal.Вы можете зарегистрировать другой конвертер для BigDecical со значением по умолчанию, указанным ниже:

    Object defaultValue = null;
    BigDecimalConverter converter = new BigDecimalConverter(defaultValue);
    ConvertUtils.register(converter, BigDecimal.class);

Подробнее см. Документацию для ConvertUtils и BigDecimalConverter .Более подробная информация содержится в документации ConvertUtilsBean .

...