1

我有一个由需要使用 Jackson 反序列化的接口组成的对象。由于系统的设计,我无法在界面中指定任何注释,因此我需要将所需的解析器信息添加到ObjectMapper. 我的对象有以下内容:

private Alarm alarm; // Alarm is an interface
private List<Extra> extra; // Extra is an interface

现在我可以使用以下命令相对轻松地处理警报AbstractTypeResolver

SimpleAbstractTypeResolver resolver = new SimpleAbstractTypeResolver();
resolver.addMapping(Alarm.class, AlarmImpl.class);

SimpleModule module = new SimpleModule();
module.setAbstractTypes(resolver);

mapper.registerModule(module);

mapper.readValue(json, new TypeReference<List<Engine>>() {});

这很好用。但是,Extra以相同的方式添加解析器不起作用:

resolver.addMapping(Extra.class, ExtraImpl.class);

关于我应该如何将其应用于列表的任何建议?

4

0 回答 0