【发布时间】:2019-10-25 11:55:10
【问题描述】:
我正在编写一个需要 com.fasterxml.jackson.databind.ObjectMapper 实例的库。库的用户应该能够为 ObjectMapper 或 ObjectMapper 实例本身提供配置。但我也在不影响用户 ObjectMapper 实例的情况下添加/修改了序列化程序的一些设置。
有没有办法创建 ObjectMapper 实例的副本/克隆?
看起来ObjectMapper clonedInstance = new ObjectMapper(originalMapper.getFactory()) 可以工作。但我不确定我是否缺少任何东西。 ObjectMapper 的行为会和原来的完全一样吗?
目前这是我的代码:
public MyLibraryClass {
private ObjectMapper internalMapper;
public MyLibraryClass(ObjectMapper mapper) {
if (mapper == null) {
internalMapper = new ObjectMapper();
} else {
internalMapper = new ObjectMapper(mapper.getFactory());
}
}
}
【问题讨论】:
-
class YourMapper extends ObjectMapper并编写自己的功能 -
ObjectMapper 的 .copy() 方法提供了您要求的功能。
-
但这不是我想要的。我希望有人可以提供现有的 ObjectMapper,并且我想对其进行修改(例如添加
objectMapper.setAnnotationIntrospector(...))。我不是在问如何扩展 ObjectMapper。我在问如何创建现有实例的克隆 -
@groovedigga 谢谢!不知怎的,我没有看到这个
-
@Raman:很高兴我能帮上忙。请为对您的问题添加有用内容的 cmets 投票。