Я пытаюсь заполнить поля POJO, используя метод BeanUtilsBean.populate(object, fieldNameVSfieldValueMap)
.
Мой POJO выглядит так:
class POJO{
Integer intField;
Double doubleField
String str;
}
В настоящее время у меня есть HashMap, который содержит карту между именем поля и значением поля.
Теперь со следующим кодом:
POJO obj = new POJO();
Map<String,String> map = new HashMap<>();
map.put("intField", "1");
map.put("doubleField", "1.1");
BeanUtilsBean.populate(obj, map)
С помощью приведенного выше кода в моем объекте POJO obj поля intField и doubleField заполняются значениями 1 и 1.1 соответственно, как и ожидалось.
Проблема в том, что строковое поле str получает нулевое значение, назначенное ему, поскольку в хэш-карте не было записи для str, а null является значением по умолчанию для String.
Но я хотел, чтобы был явный способ установить мое пользовательское значение в поле, когда они не упомянуты на карте.
Для этого примера допустим, что я хочу установить str в "john", поскольку на карте нет записи для str.
Изменить 1:
А также это должно быть специфичным для типа поля. Так что если в POJO есть другие поля, и они имеют тип String, то для всех тех полей String, для которых нет записи на карте, следует заполнить John.
Редактировать 2: POJO определен в другом проекте, к которому у меня нет доступа к коммиту, поэтому установка значений по умолчанию в самом POJO не является решением для меня.