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