gpt4 book ai didi

java - 我应该将 Jackson 的 ObjectMapper 声明为静态字段吗?

转载 作者:太空宇宙 更新时间:2023-11-04 09:26:46 25 4
gpt4 key购买 nike

Jackson 库的 ObjectMapperseems to be thread safe .

这是否意味着我应该将我的 ObjectMapper 声明为这样的静态字段

class Me {
private static final ObjectMapper mapper = new ObjectMapper();
}

而不是像这样的实例级字段?

class Me {
private final ObjectMapper mapper = new ObjectMapper();
}

最佳答案

是的,这是安全的并且值得推荐。

您提到的页面中唯一的警告是,一旦共享映射器,您就无法修改映射器的配置;但您没有更改配置,所以这很好。如果您确实需要更改配置,您可以从静态 block 中执行此操作,也可以。

编辑:(2013/10)

对于 2.0 及更高版本,可以通过注意到有一种更好的方法来增强上述内容:使用 ObjectWriterObjectReader 对象,它们可以由 ObjectMapper 构造。它们是完全不可变的、线程安全的,这意味着理论上不可能导致线程安全问题(如果代码尝试重新配置实例,ObjectMapper 可能会发生这种情况)。

关于java - 我应该将 Jackson 的 ObjectMapper 声明为静态字段吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57601799/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com