问题描述
我正在尝试使用 Google Guava Collections 使我的课程之一不可变。它有一个 EnumMap
字段,在 Guava 世界中,应将其转换为 ImmutableMap
类型并应使用 Maps.immutableEnumMap()
进行实例化。
现在我面临的问题是我使用 Jackson 将我的数据反序列化为这些不可变对象,但与在 Guava 中公开不可变变体的其他集合类型不同(例如:ImmutableList
),{{ 1}} 是 Guava 中的包私有类,因此即使使用 ImmutableEnumMap
中的 GuavaModule
来实现 jackson-guava 互操作性也无助于我解决问题。
虽然该字段的理想类型是 jackson-datatype-guava
,但我可以只使用 ImmutableEnumMap
(因为它对客户端读取它的方式没有太大影响) ,但只是这样做,会使 Jackson 使用 ImmutableMap
反序列化它。
我希望 Guava 模块足够聪明,可以确定如果地图的键类型是枚举,那么它会自动使用 RegularImmutableMap
代替,但这似乎没有发生.
我想这样做的原因是为了保持 EnumMap 在常规地图上提供的性能。
关于如何实现这一目标的任何想法?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)