android - 如何将 copyToRealmOrUpdate 用于列表?

标签 android realm

这是我的 Android 应用程序中的一些代码:

public class Offer extends RealmObject {
    @PrimaryKey
    private long id;

在我的服务类中:

  RealmList<Offer> currentLocalMerchantOfferList = currentLocalMerchant.getOffers();
   RealmList<Offer> findIncomingMerchantOfferList = findIncomingMerchant.getOffers();
                                if (!EqualsUtil.areEqual(currentLocalMerchantOfferList, findIncomingMerchantOfferList)) {
                                    currentLocalMerchant.setOffers(findIncomingMerchantOfferList == null ? null : realm.copyToRealmOrUpdate(findIncomingMerchantOfferList));
                                }

我得到编译错误:

error: incompatible types: bad type in conditional expression
                                currentLocalMerchant.setOffers(findIncomingMerchantOfferList == null ? null : realm.copyToRealmOrUpdate(findIncomingMerchantOfferList));

我是否正确使用了 copyToRealmOrUpdate?如果没有,如何正确使用它?

最佳答案

realm.copyToRealmOrUpdate(findIncomingMerchantOfferList)返回 List<T>而不是 RealmList<T> .

RealmList 代表many-relationship到另一个对象类型。因此,这些随机插入的对象不是多关系,因此它们不是 RealmList。

事实上,它们在内部返回为 ArrayList .

更改代码以适应的方法是:

currentLocalMerchant.getOffers().clear();
currentLocalMerchant.getOffers().addAll(realm.copyToRealmOrUpdate(findIncomingMerchantOfferList));

关于android - 如何将 copyToRealmOrUpdate 用于列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53258385/

相关文章:

android - 从类扩展 View 调用方法(使用构造函数)

android - Intel XDK Crosswalk 构建中的 cordova.file

ios - 在浏览器中打开 Realm 文件总是需要加密 key

ios - 通过kvo观察realm List类型时如何获取 "old"值

android - 我可以在哪些用途中找到 SharedActivityContext?

android - 实时数据中的 Observables 更新在 fragment 中不起作用

ios - 将数组存储在 Realm 对象中

java - 如何持久保存引用的 RealmObject

java - 使用 Realm 异步更新 ListView

android - 从sys目录读取文件