clone() 메서드를 보고합니다.
보통 clone() 메서드의 반환 타입은 java.lang.Object이며, 이는 클라이언트가 메서드를 사용하기 힘들게 만듭니다.
Effective Java(2판 및 3판)에서는 clone() 메서드의 반환 타입을, 반환하는 객체의 클래스 타입과 같게 만들 것을 권장합니다.
예:
class Foo implements Cloneable {
public Object clone() {
try {
return super.clone();
} catch (CloneNotSupportedException e) {
throw new AssertionError();
}
}
}
빠른 수정을 적용한 후:
class Foo implements Cloneable {
public Foo clone() {
try {
return (Foo)super.clone();
} catch (CloneNotSupportedException e) {
throw new AssertionError();
}
}
}