我对以下代码的理解是我有一个项目,我将该项目添加到ArrayList,我可以单独修改它们的两个库存。但是当我测试它时,两者都不正确。任何人都可以帮助我理解为什么会这样吗?
int i = item.getInventory();
item.setInventory(i-numToBuy);
inv.getCart().add(item);
inv.getCart().get(inv.getCart().indexOf(item)).setInventory(numToBuy);
g.getShoppingCart().setText(inv.getCartString());
答案 0 :(得分:0)
实际上,您正在引用内存中的相同项目对象,外部项目和索引获取的项目都引用内存中的同一物理对象。因此,您的更改将叠加,它们不会独立发生。您需要明确创建两个不同的项目对象或"深层复制"你正在使用的那个物品。