clone() メソッドをオーバーライドしない Cloneable インターフェースを実装しているクラスを報告します。

このようなクラスは public ではなく protected であり、クラスのミュータブルな状態をコピーしない clone() のデフォルトの実装を使用します。

基本的な clone() メソッドを生成するクイックフィックスを使用できます。このようなメソッドは、Cloneable クラスに必要な適切に機能する clone() メソッドの基礎として使用できます。

例:


  public class Data implements Cloneable {
    private String[] names;
  }

クイックフィックス適用後:


  public class Data implements Cloneable {
    private String[] names;

    @Override
    public Data clone() {
      try {
        Data clone = (Data) super.clone();
        // TODO: ここにミュータブルな状態をコピーし、クローンが元の内部を変更できないようにする
        return clone;
      } catch (CloneNotSupportedException e) {
        throw new AssertionError();
      }
    }
  }

Cloneable クラスからの継承のために Cloneable なクラスを無視するには、「継承のために Cloneable クラスを無視する」オプションを使用します。

スーパークラスの clone() メソッドを呼び出すために Cloneable の実装が必要なクラスを無視するには、「スーパークラスの clone() メソッドを呼び出すために Cloneable が必要な場合は無視する」オプションを使用します。