【发布时间】:2017-12-01 07:35:20
【问题描述】:
结构
Class Dogs extends RealmObject{
private RealmList<Cats> cats;
}
dogList 包含cats 的非空列表。
我正在尝试将猫/集删除为空列表,但结果也会影响父列表。
protected void removeCatsFromDogs(ArrayList<Dogs> dogList) {
ArrayList<Dogs> newList = new ArrayList<>(dogList);
Observable.fromIterable(newList)
.map(dogs ->
{
dogs.setCats(null);
// dogs.setCats(new RealmList<>()); also not working
return dogs;
}
).toList()
.doOnSuccess(dogs -> baseRealm.executeTransaction(realm -> baseRealm.copyToRealmOrUpdate(dogs)))
.subscribe();
}
doOnSuccess 返回 dogs 和 null 列表,但它也反映在原始列表中。
我也尝试过使用 for 循环一个一个地复制对象,但仍然是同样的问题。
【问题讨论】:
-
你到底想完成什么?
-
@ChristianMelchior 我已经更新了我的问题。总之,我不想对
dogList(函数参数)做任何改变 -
所以你有一个不受管理的
dogList(有猫),但你想更新领域中的所有狗,以删除他们所有的猫,所有这一切都不会影响你原来的@987654330 @? -
是的@ChristianMelchior。正是
标签: android arraylist realm rx-java rx-java2