这是我的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));
                                }


我收到compile错误:

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));

10-06 03:43