我有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);
两个投资组合基本上都是引用相同的对象。如何对列表中的项目进行深层复制,记住它的嵌套两次。 Holdings嵌套在PortfolioCoin中,而PortfolioCoin嵌套在Portfolio中。
我真的必须编写嵌套循环才能执行此操作吗?并迭代每个项目,然后迭代每个项目中的每个项目?
答案 0 :(得分:3)
您可以尝试以下技巧
portfolio.portfolioCoins.addAll(realm.copyToRealmOrUpdate(realm.copyFromRealm(activePortfolio2.portfolioCoins, 2))); // maybe 3?