Я пытаюсь создать метод, которому передается объект, и читает все поля, чтобы поля, которые имеют значение null и имеют строковые значения, получили значение "".
Проблема теперь возникает с моим классом. У меня есть эта модель:
@Getter
@Setter
@NoArgsConstructor
@ToString
public class AccountModel {
private String noTotCount;
private int nTotal;
private String account;
}
И я сделал этот метод: private ObjectMapper obMapper = new ObjectMapper ();
private Object stringNullToEmpty(Object object) {
Class<?> clase = object.getClass();
Map<String, Object> objectMap = obMapper.convertValue(object, new TypeReference<Map<String, Object>>(){});
for (Field field : clase.getDeclaredFields()) {
String fieldName = field.getName();
if(field.getType().equals(String.class) && objectMap.get(fieldName) == null) {
objectMap.put(field.getName(), "a");
}
}
return obMapper.convertValue(objectMap, clase);
}
Ошибка представляется мне, когда я делаю obMapper.convertValue()
потому что он конвертирует мое поле noTotCount
в nototCount
, поэтому, когда вы go переводите в условное выражение и пытаетесь put()
, в объектной карте нет поля, содержащего ключ noTotCount
, поскольку ключ, содержащий объектная карта nototCount
.
Почему ObjectMapper преобразовывает мое поле noTotCount
в nototCount
?