如何将字段从盒装版本迁移到未装箱版本
How to migrate a field from a boxed version to an unboxed version
我有一个 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");
这是推荐的方法吗?
Double
和 double
对于 Realm 是相同的,除了 double
不可为空。
因此,如果您想将 Double
变成 double
,那么只需将字段设为 @Required
,并通过迁移为其添加注释即可。
schema.get("Item")
.setNullable("mOriginalWeight", false);
我有一个 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");
这是推荐的方法吗?
Double
和 double
对于 Realm 是相同的,除了 double
不可为空。
因此,如果您想将 Double
变成 double
,那么只需将字段设为 @Required
,并通过迁移为其添加注释即可。
schema.get("Item")
.setNullable("mOriginalWeight", false);