개인과제 진행 중 쉬운 문제였지만 알아차리는데 조금 걸린 문제를 다뤄 보려 합니다.
위와같이 오브젝트형 리스트를 하나 생성하고 그 리스트를 담을 또다른 리스트를 생성하였습니다.
(첫번째 리스트를 a, 두번째 리스트를 b 라고 하겠습니다.)
그 후 a리스트의 값을 b 의 리스트에 넣고 a리스트를 .clear 한 후 b리스트에 있는 값을 출력했는데 아무것도 출력이 되지않았습니다.
이런식으로 리스트를 사용한것은 물건을 선택해서 담을 장바구니 리스트 하나와 장바구니에 있는 물건들을 기록할 리스트를 하나 만든것입니다 장바구니 리스트(a 리스트)는 시스템에서 주문하기를 클릭하면 비워지고 다른 물건을 또 담을 용도로 생각했고 주문하기가 되었을때 판매한 물건을 기록하기 위해서 b리스트를 생성한것이였습니다.
문제는 참조형 변수이기 때문에 주소값이 저장되는것을 미처 생각하지 못하고 a리스트는 주문하기를 할때 .clear 하고 b리스트를 출력한 것입니다.
b리스트의 값은 null이되고 에러가 발생하였고 곰곰히 생각하던 중 참조형 변수인것을 떠올렸습니다.
해결방법은 구글링 중 리스트 값을 복사할 수 있는 코드를 알아내었고
위와같이 리스트들을 생성했습니다.
(순서대로 a, b, c 리스트라고 하겠습니다.)
a에 담은 물건 값들을 주문하기를 클릭할때 b리스트에
위와같은 함수로 복사한 후 그 값들을 c리스트에 담아 줬습니다.
그후 장바구니는 장바구니대로 돌아가고 판매된 물건들은 리셋되지 않고 차곡차곡 잘 쌓였습니다.
아쉬웠던 점은 조금 더 쉬운 방법이 있을것 같은데 조금 돌아가는 방향으로 코딩을 한것같습니다.