如何在 Realm 中深度复制一个包含 RealmList 作为属性的对象,而不是让 RealmList 对象引用同一个



我有 3 个领域对象

public class Portfolio extends RealmObject {
@PrimaryKey
public long id;
public RealmList<PortfolioCoin> portfolioCoins = new RealmList<>();
}
public class PortfolioCoin extends RealmObject {
public Coin coin;
public RealmList<Holdings> holdings = new RealmList<>();
public int color;
}
public class Holdings extends RealmObject {
@PrimaryKey
public long id;
public double amount;
public double price;
}

现在我希望我的用户能够复制他们的投资组合。 如果我创建一个新的投资组合并执行此操作

portfolio.portfolioCoins.addAll(activePortfolio2.portfolioCoins);

两个投资组合基本上都引用相同的对象。如何对列表中的项目进行深层复制,记住它嵌套了两次。持股嵌套在投资组合币中,投资组合币嵌套在投资组合中。

我真的必须编写嵌套循环来执行此操作吗? 并迭代每个项目,然后迭代每个项目中的每个项目?

你可以试试以下技巧

portfolio.portfolioCoins.addAll(realm.copyToRealmOrUpdate(realm.copyFromRealm(activePortfolio2.portfolioCoins, 2))); // maybe 3?

最新更新