throws CloneNotSupportedException을 선언하지 않는 clone() 메서드를 보고합니다.
throws CloneNotSupportedException이 선언되지 않은 경우, 메서드의 하위 클래스는 표준 방식의 복제를 금지할 수 없습니다. 이 검사는 final을 선언한 clone() 메서드 및 final 클래스에 사용된 clone() 메서드는 보고하지 않습니다.
검사 구성:
이 검사가 protected clone() 메서드에 대해서만 경고를 생성해야 함을 나타내려면 Only warn on 'protected' clone methods('protected' 복제 메서드에 대해서만 경고) 옵션을 사용하세요.
이펙티브 자바 책 (2판 및 3판) 에서는 public 메서드에서 CloneNotSupportedException을 생략할 것을 권장합니다. 이는 확인된 예외를 던지지 않는 메서드를 사용하는 것이 더 쉽기 때문입니다.
예:
public class Example implements Cloneable {
// 메서드가 'throws CloneNotSupportedException'을 선언하지 않음
protected Object clone() {
try {
return super.clone();
} catch (CloneNotSupportedException e) {
return null;
}
}
}