3 回答

TA貢獻(xiàn)1887條經(jīng)驗(yàn) 獲得超5個(gè)贊
如果你想復(fù)制一個(gè)列表,我建議使用Collections.copy:
List<UserPhoto> copiedList = new ArrayList<UserPhoto>();
Collections.copy(copiedList, loggedUserAuthResource.data.getUserPhotos());
copiedList.add(new UserPhoto("ADD"));
您的getUserPhotos()方法可能仍然引用源列表。

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超6個(gè)贊
在這里你不復(fù)制任何東西:
List<UserPhoto> copiedList = loggedUserAuthResource.data.getUserPhotos();
您使copiedList
變量引用與引用相同的List
實(shí)例。loggedUserAuthResource.data.getUserPhotos()
因此它將對(duì)象添加到List
存在的單個(gè)實(shí)例中:
copiedList.add(new UserPhoto("ADD"));
ArrayList
您想要的是從現(xiàn)有對(duì)象(復(fù)制構(gòu)造函數(shù))創(chuàng)建一個(gè)新對(duì)象。這樣你就有了兩個(gè)不同的列表對(duì)象,你只能在這個(gè)新的中添加新元素ArrayList
:
List<UserPhoto> copiedList = new ArrayList<>(loggedUserAuthResource.data.getUserPhotos()); copiedList.add(new UserPhoto("ADD")));

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超6個(gè)贊
您也可以這樣做。
List<UserPhoto>?copiedList?=?new?ArrayList<UserPhoto>(); copiedList.addAll(loggedUserAuthResource.data.getUserPhotos()); copiedList.add(new?UserPhoto("ADD"));
添加回答
舉報(bào)