내가 만든 개체가 있다고 가정 해 보겠습니다. 나는 그것이 참조한 새로운 객체()와는 다른 값을 가지도록 편집했다. 그 객체 f1을 호출 할 수있게합니다. 이제 나는 f2라는 다른 객체가 f1의 복사본이지만 포인터는 아니기를 바랍니다. 따라서 f2의 값을 변경할 때 f1도 변경되지 않습니다. 어떻게 내가 자바에서 이렇게 할까?포인터 대신 java에서 개체 복사본을 만드는 방법
답변
먼저 클래스에 Cloneable
인터페이스를 구현하게하십시오. 이 기능이 없으면 객체에 clone()
을 호출하면 예외가 발생합니다.
다음으로 특정 개체 유형을 반환하도록 Object.clone()
을 재정의하십시오. 구현은 다음과 같이 간단히 수행 할 수 있습니다. 더 복잡한 작업이 필요한 경우가 아니면
@Override
public MyObject clone() {
return (MyObject)super.clone();
}
이 있습니다. 그래도 super.clone()
으로 전화하십시오.
계층 구조를 위로하여 Object.clone()
으로 호출하여 개체의 각 데이터를 새로운 개체로 복사합니다. 참조가 복사되고 복제되지 않으므로 전체 복사본 (객체가 참조하는 객체의 복제본)을 원한다면 재정의 한 clone()
함수에서 추가 작업을 수행해야합니다.
clone을 사용합니다.
대부분의 객체는 그 객체의 복사본을 반환하는 방법 clone()를 가지고 귀하의 경우
f2 = f1.clone()
사용 뭔가
f2 = f1.clone();
사용자 정의 속성이있는 경우
(또는 회원 같은 너무), 클래스에있는 복제본을 재정 의하여 딥 복사해야합니다. 당신은 얕은 여기에 딥 카피http://javapapers.com/core-java/java-clone-shallow-copy-and-deep-copy/
당신이 복제 할 수 또는 복제 할 수없는 경우에 당신이 그것을 위해 자신의 기능을 쓸 수에 대해 배울 수 있습니다. 이 질문의
function (variable){
clone = JSON.parse(JSON.stringify(variable))
return clone;
}
Java에 대한 질문은 javascript가 아닙니다. –
- 1. 개체 복사본을 만들려면 어떻게해야합니까?
- 2. Java에서 2 차원 배열의 전체 복사본을 만드는 방법은 무엇입니까?
- 3. 코어 데이터에서 NSManagedObject의 딥 복사본을 만드는 방법
- 4. 함수 포인터 Java에서
- 5. 포인터 개체 오버플로
- 6. 포인터 - 안전 개체?
- 7. 개체 포인터 할당
- 8. 프로 시저 포인터, 성공한 개체
- 9. 컬렉션의 모든 요소에 대한 전체 복사본을 만드는 일반적인 방법
- 10. Java에서 xml 파일을 만드는 방법
- 11. Java에서 도움말 시스템을 만드는 방법
- 12. NHibernate 객체의 전체 복사본을 만드는 방법은 무엇입니까?
- 13. Java에서 객체에 포인터 위치 전달
- 14. 개체의 컨텍스트가 다른 경우 NSManagedObject의 얕은 복사본을 만드는 방법은 무엇입니까?
- 15. 개체 생성 : 'new'키워드 대신 컨트롤을 보존하는 방법
- 16. 만드는 개체
- 17. 복사본을 만드는 대신 객체를 가리 키도록 Java 할당을 만들 수 있습니까? 클래스 내의
- 18. 최신 복사본을 다운로드하는 바이너리를 만드는 방법 (제한 조건)
- 19. 부스트 :: 파일 시스템 :: 디렉토리 _iterator의 복사본을 만드는 방법?
- 20. nant를 사용하여 기존 구성 파일의 복사본을 만드는 방법
- 21. UIImagePicker에서 이미지 복사본을 얻는 방법
- 22. 포인터 모음에서 특정 개체 빠른 검색
- 23. 프로덕션 SQL 데이터베이스 복사본을 만드는 방법은 무엇입니까?
- 24. 이중 연결된 목록의 복사본을 만드는 방법은 무엇입니까?
- 25. java의 같은 디렉토리에 파일의 복사본을 만드는 방법은 무엇입니까?
- 26. 사용자 지정 개체 또는 컬렉션의 복사본을 만들려면 어떻게해야합니까?
- 27. Java에서 보안 환경을 만드는 최선의 방법
- 28. Java에서 구문 언어 번역 엔진을 만드는 방법
- 29. Java에서 .CSV 파일을 만드는 가장 좋은 방법
- 30. Java에서 교차 프로세스 Singleton 클래스를 만드는 방법
중복 : http://stackoverflow.com/questions/869033/how-do-i-copy-an-object-in-java –
난 당신이 복제 방법 경우에 그것을 할 수 있습니다 믿습니다 귀하의 개체는 복제 가능을 구현합니다. http://download.oracle.com/javase/tutorial/java/IandI/objectclass.html 자세한 정보는 – blong824