Код: Выделить всё
public class InspectArrayFormulaArgs {
private final int expectedColumns;
@JsonCreator
public InspectArrayFormulaArgs(@JsonProperty(value = "expectedColumns", defaultValue = "-1") int expectedColumns) {
this.expectedColumns = expectedColumns;
}
}
- Если поле есть, примите его как есть.
- Иначе используйте значение по умолчанию, которое я объявил
Я подумал, что это может быть связано с тем, что JDK инициализирует int как 0, и Джексон не понимает, что этого поля нет в Json (хотя я думал, что они анализируют Json напрямую).
Поэтому я попытался использовать Integer вместо int в качестве параметра конструктора, но это приводит к исключению NullPointerException, поскольку Джексон не присваивает значение -1, и поэтому JDK пытается распаковка значения null в поле int ожидаемые столбцы.
Есть идеи, как мне это сделать?
Примечания:
[*]Я пробовал аннотировать класс с помощью @JsonInclude(JsonInclude.Include.NON_DEFAULT), но это ничего не изменило.
[*]Я предполагаю, что могу объявить поле целым вместо целого, но Джексон все равно оставит его нулевым (не присваивает -1), и я хотел избежать проверок на своей стороне, таких как value != null ? значение: -1. Конечно, я сделаю это, если нет решения, но мне кажется странным, что Джексон не способен понять, о чем я спрашиваю, поэтому мне интересно, не неправильно ли я спрашиваю
Подробнее здесь: https://stackoverflow.com/questions/790 ... th-jackson
Мобильная версия