Jackson TypeFactory Статические методы устарели Что использовать? - PullRequest
8 голосов
/ 15 ноября 2011

Типфакторный класс в Джексоне имеет много устаревших методов внутри него.Я использую его следующим образом:

public List<T> getX(Class<T> clz) {
    ObjectMapper mapper = new ObjectMapper();
    try {
        String jsonData = mapper.writeValueAsString(data);
        a = mapper.readValue(jsonData, TypeFactory.collectionType(List.class, clz));
    } catch (Exception e) {
        System.out.println(e.getMessage());
    }
    return a;// a is a global variable
}

, и он предупреждает меня, что collectionType является устаревшим .Что использовать вместо него?

1 Ответ

13 голосов
/ 15 ноября 2011

TypeFactory сама по себе НЕ устарела, просто статические методы; Доступны методы экземпляра, такие как "constructType". Поэтому вопрос скорее в том, где взять экземпляр TypeFactory для использования.

Чаще всего вы получаете экземпляр из ObjectMapper, используя метод getTypeFactory; или от SerializationConfig / DeserializationConfig. Они несут экземпляр вокруг. Если ничего из этого не работает, есть также TypeFactory.instance, который вы можете использовать.

Причиной устаревания является то, что некоторые модули расширения захотят заменить стандартную фабрику: в частности, модуль Scala должен расширять обработку типов с помощью типов Scala Collection (и т. Д.) - они не будут работать по умолчанию, поскольку Scala не расширяет Версии java.util.

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