报告实现 Cloneable 接口但不重写 clone() 方法的类。

这样的类使用 clone() 的默认实现,它不是 public,而是 protected,并且不复制该类的可变状态。

通过快速修复可以生成基本的 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: 在此处复制可变状态,因此该 clone 无法更改原始 clone 的内部; 
         return clone;
      } catch (CloneNotSupportedException e) {
        throw new AssertionError();
      }
    }
  }

使用忽略由于继承而可克隆的类选项,可忽略因继承自 Cloneable 类而 Cloneable 的类。

使用忽略需要 Cloneable 才能调用超类的 clone() 方法的情况选项,以忽略从超类调用 clone() 方法因而需要实现 Cloneable 的类。