원본 데이터의 보존이 중요 시 되는 경우, 사용하게 된다. 복제 기능에 대해서는 Cloneable 라는 Interface 를 구현 해야 한다.
public abstract interface Cloneable {
}
Object 클래스에 정의 되어 있다. 용도에 따라 얼마든지 Override 해서 사용 하면 된다.
protected native Object clone() throws CloneNotSupportedException;
접근 제한자가 protected 로 되어 있기 때문에, 외부에서는 접근이 불가능 하므로 아래와 같이 선언 해야 외부에서 사용이 가능 하다. Cloneable Interface 를 implements 하지 않았을 경우, java.lang.CloneNotSupportedException 이 발생 하니 주의 하자.
public class Model implements Cloneable {
// Doing...
public Object clone() throws CloneNotSupportedException {
return super.clone();
}
}
메소드 정의가 끝났다면, clone() 을 호출 하여 사용 하도록 하자.