1
默認情況下,在反序列化任何Map
類型時,Jackson會創建java.util.LinkedHashMap
的實例。這是如何定製的,讓Jackson創建一個不同的Map實現,但仍然繼續使用其默認的Map解串器?Jackson自定義地圖值實例化器
默認情況下,在反序列化任何Map
類型時,Jackson會創建java.util.LinkedHashMap
的實例。這是如何定製的,讓Jackson創建一個不同的Map實現,但仍然繼續使用其默認的Map解串器?Jackson自定義地圖值實例化器
有多種方法可以做到這一點,但可能最簡單的方法就是指定應該使用什麼類作爲抽象類的具體實現。因此,像:
SimpleModule myModule = new SimpleModule(...);
myModule.addAbstractTypeMapping(Map.class, SomeOtherMap.class);
objectMapper.registerModule(myModule);
這既適用於普通違約抽象類型(List
,Collection
,Map
)的以及用於指定的自定義接口和抽象類的具體實現。