gpt4 book ai didi

java - 将独立对象添加到 RealmList

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:06:41 25 4
gpt4 key购买 nike

是否可以将独立对象添加到已经存在于 Realm 中的 RealmObject 的 RealmList 中?

好吧,我知道它不起作用,因为我在 (object.row.getIndex():RealmList:94) 处得到了 NPE

我想做的是:

mRealm.beginTransaction;
contact.getEmails().add(new Email());
mRealm.commitTransaction;

因为在那个特定时刻我无法访问 Realm(我可以让它工作,但我必须重写一些结构),例如:

//In Activity
Contact contact = Realm.where(Contact.class).equalsTo("name","pete").findAll().first();
mRealm.beginTransaction;
UpdateHelper.update(contact);
mRealm.commitTransaction;

//Helper class some else package
public static void update(Contact contact) {
//do update stuff
contact.getEmails().add(new Email());
}

`

最佳答案

这里是来自 Realm 的 Christian。不,目前这是不可能的。这是一个有趣的用例。我们使用 Realm.copyToRealm() 方法的原因是为了明确表示您不应再使用旧对象。允许将独立对象添加到已经持久化的列表中会降低透明度。您还需要它发生在写入事务中。在您的方法调用中添加对 Realm 的引用可能是解决它的最佳方法。

//In Activity
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
Contact contact = realm.where(Contact.class)
.equalTo("name","pete")
.findFirst();
if(contact != null) {
UpdateHelper.update(contact, realm);
}
}
});

//helper method
public static void update(Contact contact, Realm realm) {
//do update stuff
Email email = realm.copyToRealm(new Email());
contact.getEmails().add(email);
}

关于java - 将独立对象添加到 RealmList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28071169/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com