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;
        }
    }
  }