Pri*_*alj 4 android database-migration realm
我lastUpdate向存储在Realm DB中的对象添加了一个新字段():
public class ChartObject extends RealmObject {
...
private Long lastUpdate = 0L;
public ChartObject() {
...
lastUpdate = 0L;
}
...
public long getLastUpdate() { return lastUpdate; }
public void setLastUpdate(long lastUpdate) { this.lastUpdate = lastUpdate;
}
Run Code Online (Sandbox Code Playgroud)
我已将其添加到MyMigration.java:
@Override
public void migrate(DynamicRealm realm, long oldVersion, long newVersion) {
RealmSchema schema = realm.getSchema();
if (oldVersion < 4) {
schema.get("ChartObject")
.addField("lastUpdate", Long.class); // how to set default value?
oldVersion++;
}
}
Run Code Online (Sandbox Code Playgroud)
现在,当我试图访问它通过getLastUpdate()我得到
java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'long java.lang.Long.longValue()'
如何正确设置默认值?
如果您已有对象,则需要在转换中更新它们。
if (oldVersion < 4) {
schema.get("ChartObject")
.addField("lastUpdate", Long.class);
schema.get("ChartObject").transform(new RealmObjectSchema.Function() {
@Override
public void apply(DynamicRealmObject obj) {
obj.setLong("lastUpdate", 0L);
}
});
oldVersion++;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2186 次 |
| 最近记录: |