我正在将KeyDeseriliser
注册到ObjectMapper
。在阅读JSON
之后,我想注销此模块。因为我的ObjectMapper
是静态的,我不想在任何其他地方使用这个模块。
SimpleModule module = new SimpleModule("EnhancedDatesModule", new Version(0, 1, 0, "test", "Test-id",
"testest"));
module.addKeyDeserializer(EncounterCURN.class, new MapKeyDeseriliser());
objectMapper.registerModule(module);
Map<EncounterCURN, Collection<EncounterTodo>> encounterTodosByEncounter = mapReader.readValue(nodes.get("todos"));
不,你不能这样做。您应该创建另一个ObjectMapper
并使用它。
顺便说一句,static
字段这不是用Java编程的好习惯。您应该避免此类对象是static
的情况。
根据文档,模块有一个setSerializers
:
/**
* Resets all currently configured serializers.
*/
public void setSerializers(SimpleSerializers s) {
_serializers = s;
}
因此,您可以使用一个新的空SimpleSerializers
对象来调用setter。
免责声明:从线程安全的角度来看,我不能100%确定这将如何锻炼。