You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从Realm迁移至ObjectBox:是否支持List<Double>与List<Long>?

ObjectBox 4.0.3(Java/Android)对List/List的支持情况

ObjectBox在Java环境下不支持直接存储List或List,目前它对泛型List的支持仅限定于List<String>,基础类型的存储则只支持对应的数组形式(如double[]、long[])。

迁移适配方案

如果希望尽量保留可调整大小容器的使用体验,有两种可行方向:

  1. 使用基础类型数组配合工具类
    用double[]或long[]存储数据,借助Java的Arrays.copyOf等工具方法实现动态扩容,虽然操作上不如List便捷,但完全符合ObjectBox的存储要求。
  2. 封装实体类+ToMany关系模拟List
    创建专门的数值包装实体,通过ObjectBox的ToMany关联来实现动态元素管理,逻辑和RealmList更接近,迁移成本更低:
    // 包装Double值的实体
    @Entity
    public class DoubleValue {
        @Id long id;
        double value;
    }
    
    // 在主实体中使用ToMany关联
    @Entity
    public class TargetEntity {
        @Id long id;
        ToMany<DoubleValue> values;
    }
    
    ToMany本身是可动态增删元素的容器,调用values.add()/values.remove()等方法即可实现类似List的操作。

内容的提问来源于stack exchange,提问作者Eddie Jakobitz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 20:02:34