저는 직원의 기록을 끌어와 이상하게도 "EmployeeRecordDataHolder"라고 불리는 집에서 만든 데이터 홀더 객체에 저장하는 Java webapp를 가지고 있습니다.구성원 데이터로 참조를 공유하는 객체 복사하기
업데이트 프로세스가 시작될 때 EmployeeRecordDataHolder 사본을 만들어 데이터 변경 방법에 대한 비교 보고서를 만들 수 있습니다.
회원 데이터에 대한 원본 및 사본 공유 참조에 문제가 발생하여 원래 데이터가 업데이트되지 않은 상태로 유지됩니다.
원래 HashMap을 통해 데이터베이스에서 데이터를 다시 가져옵니다. 두 객체를 모두 채우는 경우 HashMap get()에서 원본과 복사본이 두 객체가 여전히 데이터에 대한 동일한 참조를 공유하므로 한 객체의 데이터를 변경하면 복사본에서도 변경됩니다.
HashMap을 사용하여 원본 개체를 채운 다음 복사본의 모든 설정자에서 원본 이미지의 getter를 모두 호출하여 복사본을 만들면 어떻게됩니까? 예 :
copyDataHolderObj.setSomePieceOfData( originalDataHolderObj.getSomePieceOfData());
이 방법을 사용하면 서로 독립적으로 변경할 수있는 두 개의 개체가 생성됩니까? 첫 번째 질문에 대한
스티브
다음과 같이하십시오. copyDataHolderObj.setSomePieceOfData (originalDataHolderObj.getSomePieceOfData()); 모든 데이터 값에 다른 하나의 값을 영향을주지 않으면 서 서로 독립적으로 업데이트 할 수있는 두 개의 객체가 제공됩니까? – Steve
예. 당신이 ClassName copyDataHolderObj = new ClassName();의 앞에 새로운 객체를 생성한다고 가정하면 ClassName은 필수 클래스입니다. – mtk