我無法理解爲什麼我的代碼表現得像它一樣。我所做的是創建一個自定義類的ArrayList。填充類對象,然後將其添加到ArrayList。然後,我重用類對象並使用新值填充它,並將其添加到ArrayList,除非第一個被第二個覆蓋?有沒有某種內部指針或者數組列表還沒有被提交,這可能會導致這種情況?問題填充ArrayList
下面我宣佈我的ArrayList
private ArrayList<LiftData> arrylst_LiftData = new ArrayList<LiftData>();
然後,我創建我的自定義數據對象(只是一些屬性的類)
LiftData obj_LData = new LiftData();
未示出的一些代碼,使有效數據填充它,我想補充它到ArrayList
arrylst_LiftData.add(obj_LData);
現在在這一點上代碼遍歷循環填充t他obj_LData與新值,然後它被添加到arraylist,但第一個不見了?
如果我添加ArrayList中下出的第二行添加所有的工作???
arrylst_LiftData.add(obj_LData);
obj_LData = new LiftData();
有人可以請edjumakate我在發生什麼事嗎?
在我看來,它是後者。我在兩種情況下重複使用同一個對象。像一張紙。我寫了一些答案並交給老師。老師把它還給我,然後我擦除寫作並做另一項任務,然後交給老師。在我看來,老師影印了第一張,所以我在重複使用這張紙時有什麼危害? – GPGVM
你的想法是錯誤的。向ArrayList添加對象不會複製任何內容。它只是將一個指向ArrayList的指針添加到obj_LData指向的相同的東西。確切地說, – Pablo
。我認爲這是ByVal,它是ByRef。正如其他人指出的那樣,ArrayLisrt不會創建新的內存並分配給它一個指針。完全是我的錯誤。 – GPGVM