如何为ZoneRegion实现MongoDB编解码器

问题描述

我正在尝试在MongoDB中存储java.time.ZoneId类型的字段。对于这种类型,我需要一个org.bson.codecs.Codec。但是,当我尝试插入ZoneId时,会显示以下内容

Can't find a codec for class java.time.ZoneRegion

这是此代码块的来源:

package java.time
static ZoneId of(String zoneId,boolean checkAvailable) {
        Objects.requireNonNull(zoneId,"zoneId");
        if (zoneId.length() <= 1 || zoneId.startsWith("+") || zoneId.startsWith("-")) {
            return ZoneOffset.of(zoneId);
        } else if (zoneId.startsWith("UTC") || zoneId.startsWith("GMT")) {
            return ofWithPrefix(zoneId,3,checkAvailable);
        } else if (zoneId.startsWith("UT")) {
            return ofWithPrefix(zoneId,2,checkAvailable);
        }
        return ZoneRegion.ofId(zoneId,checkAvailable);
    }
    

它正在为我的案例ZoneRegion创建一个ZoneId.of("Africa/Harare")ZoneRegion是私有的,这给我带来了麻烦,因为我现在无法为其创建编解码器:

final class ZoneRegion extends ZoneId implements Serializable

println(ZoneId.of("Africa/Harare").getClass)

class java.time.ZoneRegion

问题是。如何为ZoneRegion实现编解码器?

任何帮助将不胜感激。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)