如何将字段从装箱版本迁移到未装箱的版本

时间:2017-01-05 00:08:56

标签: android realm realm-migration

我有一个Double的字段。我想将其更改为double字段。这是我设置的代码:

schema.get("Item")
        .addField("mOriginalWeightUnboxed",double.class)
        .transform(new RealmObjectSchema.Function() {
            @Override
            public void apply(DynamicRealmObject obj) {
                Double boxedWeight=obj.get("mOriginalWeight");
                if (boxedWeight==null)
                    boxedWeight=0.0;
                obj.setDouble("mOriginalWeightUnboxed",boxedWeight.doubleValue());
            }
        })
        .removeField("mOriginalWeight")
        .renameField("mOriginalWeightUnboxed","mOriginalWeight");

这是推荐的做法吗?

1 个答案:

答案 0 :(得分:1)

除了Double不可为空之外,

doubledouble对于Realm是相同的。

因此,如果您想将Double变成double,那么只需创建字段@Required,然后通过迁移为其添加注释。

schema.get("Item")
    .setNullable("mOriginalWeight", false);