从Realm迁移至ObjectBox:是否支持List<Double>与List<Long>?
ObjectBox 4.0.3(Java/Android)对List/List的支持情况
ObjectBox在Java环境下不支持直接存储ListList<String>,基础类型的存储则只支持对应的数组形式(如double[]、long[])。
迁移适配方案
如果希望尽量保留可调整大小容器的使用体验,有两种可行方向:
- 使用基础类型数组配合工具类
用double[]或long[]存储数据,借助Java的Arrays.copyOf等工具方法实现动态扩容,虽然操作上不如List便捷,但完全符合ObjectBox的存储要求。 - 封装实体类+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
相关产品推荐
相关产品推荐

