Background:
처음에는 후속 작업을 위해 새 페이지에 들어갈 때 컬렉션을 복사할 생각으로 직접 List A=List B라고 썼습니다. 나중에 B를 작업하면 A 내부의 데이터도 그에 따라 변경하십시오.
(추천 동영상 튜토리얼: java 강좌)
쿼리를 통해 발견한 결과 "="를 직접 사용하는 것은 Java에서 동일한 내용을 가진 배열이 동일한 주소, 즉 A와 B를 가리키는 것과 동일하다는 것이 밝혀졌습니다. 얕은 복사 후 동일한 주소를 가리킵니다. 결과적으로 B를 변경하면 A도 변경됩니다. B를 변경하면 B가 가리키는 주소의 내용이 변경되기 때문입니다. A도 동일한 주소를 가리키므로 A와 B가 함께 변경됩니다. 독립 배열을 복사하려면 다음 방법을 사용할 수 있습니다.
public class GoodsBean extends HttpResult implements Cloneable{ @Override protected Object clone() throws CloneNotSupportedException { GoodsBean o = null; try { o = (GoodsBean) super.clone(); } catch (CloneNotSupportedException e) { e.printStackTrace(); } return o; } public ArrayList<GoodsBean> deep_clone(ArrayList<GoodsBean> cells, ArrayList<GoodsBean> clone_cells){ for(GoodsBean c : cells){ try { clone_cells.add((GoodsBean) c.clone()); } catch (CloneNotSupportedException e) { e.printStackTrace(); } } return clone_cells; } }
관련 권장 사항: Java 입문 튜토리얼
위 내용은 Java는 복사 목록을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!