GWT-Jackson-APT не игнорирует интерфейсный объект из сериализации - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть объект класса, который содержит переменную интерфейса, используемую для обратных вызовов, которые я не хочу сериализовать в JSON.Я попытался использовать аннотацию @ JsonIgnoreProperties () , чтобы игнорировать переменную интерфейса, но пока что не повезло.Препроцессор задыхается от IllegalArgumentException Не могу сделать предположение для CallbackRun ...

Интерфейс обычно выглядит так:

public interface callbackRun {
    void runOnFinish();
}

Учитывая, что форма моего класса с широкими штрихами определена как:

@JSONMapper
@JsonIgnoreProperties(ignoreUnknown=true)
public class itemInventory {

    public static itemInventory_MapperImpl MAPPER = new itemInventory_MapperImpl();

    private static final List<item> itemList = new ArrayList<>();
    private callbackRun responseHandler = null;

    / * other variables, getters setters here */

}

Каков наилучший способ заставить GWT-Джексон-APT игнорировать этот интерфейс?Или мне нужно полностью переопределить все мои объекты, чтобы удалить ссылки на функции обратного вызова?

1 Ответ

0 голосов
/ 12 февраля 2019

Вы можете использовать @JsonIgnore, аннотируя поле

@JSONMapper
public class itemInventory {

    public static itemInventory_MapperImpl MAPPER = new itemInventory_MapperImpl();

    private static final List<item> itemList = new ArrayList<>();
    @JsonIgnore
    private callbackRun responseHandler = null;

    / * other variables, getters setters here */

}

Поле не будет сериализовано при записи объекта в JSON и будет игнорироваться при чтении объекта из JSON.Вы всегда можете проверить сгенерированные преобразователи и вы увидите метод initIgnoredProperties в сгенерированном десериализаторе, также игнорируемое поле не будет включено в сгенерированный сериализатор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...