Джексон настроить Map ValueInstantiator - PullRequest
1 голос
/ 18 ноября 2011

По умолчанию Джексон создает экземпляры java.util.LinkedHashMap при десериализации любых типов Map. Как это можно настроить, чтобы Джексон создал другую реализацию карты, но при этом продолжал использовать десериализатор карты по умолчанию?

1 Ответ

4 голосов
/ 19 ноября 2011

Есть несколько способов сделать это, но, вероятно, самый простой - просто указать, какой класс следует использовать в качестве конкретной реализации абстрактного класса.Так что-то вроде:

SimpleModule myModule = new SimpleModule(...);
myModule.addAbstractTypeMapping(Map.class, SomeOtherMap.class);
objectMapper.registerModule(myModule);

это работает как для значений по умолчанию общих абстрактных типов (List, Collection, Map), так и для указания конкретных реализаций пользовательских интерфейсов и абстрактных классов.

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