throws CloneNotSupportedException を宣言していない clone() メソッドを報告します。

throws CloneNotSupportedException が宣言されていない場合、メソッドのサブクラスは標準的な方法でクローンを禁止できなくなります。 このインスペクションは、final 宣言されている clone() メソッドと final クラスの clone() メソッドを報告しません。

インスペクションの構成:

このインスペクションに protected clone() メソッドについてのみ警告を表示させるには、「'protected' クローンメソッドについてのみ警告する」オプションを使用します。 Effective Java (第 2 版および第 3 版) では、public メソッドで CloneNotSupportedException の宣言を省略することが推奨されています。チェック例外をスローしないメソッドは使いやすいためです。

例:


  public class Example implements Cloneable {
    // メソッドは 'throws CloneNotSupportedException' を宣言していません
    protected Object clone() {
        try {
            return super.clone();
        } catch (CloneNotSupportedException e) {
            return null;
        }
    }
  }