문제

자바에서 객체의 유전자 태그 코드 (또는 모든 컬렉션)를 래핑하는 클래스가 있다고 가정 해 보겠습니다.

호출자가 ArrayList의 개체에 대한 향후 변경 사항을 보지 않도록 이러한 개체 중 하나를 어떻게 반환합니까?

예 :개체의 전체 복사본을 반환하고 싶지만 복제 가능한지 알 수 없습니다.

도움이 되었습니까?

해결책

사양으로 전환 :
-객체는 컬렉션에 허용되기 위해 인터페이스를 구현해야합니다. ArrayList<ICloneable>()와 같은 것

그러면 항상 전체 복사를 수행 할 수 있습니다. 인터페이스에는 전체 복사를 반환하는 메서드가 있어야합니다.

그게 최선이라고 생각합니다.

다른 팁

한 가지 옵션은 직렬화를 사용하는 것입니다.다음은이를 설명하는 블로그 게시물입니다.

http://weblogs.java.net/blog/emcmanus/archive/2007/04/cloning_java_ob.html

불쾌한 대답 인 것 같습니다.

컬렉션에 저장된 클래스를 복제 할 수있는 필수 조건을 만듭니다.삽입시 또는 검색시 더 의미있는 것이 있는지 확인하고 예외를 발생시킬 수 있습니다.

또는 항목을 복제 할 수없는 경우 참조로 반환 옵션으로 장애 복구합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top