报告返回类型与其所在的类不同的 clone() 方法。

clone() 方法的返回类型通常为 java.lang.Object,这导致其难以被客户端使用。 Effective Java(第二版和第三版)建议将 clone() 方法的返回类型设为与其返回对象的类的类型相同。

示例:


  class Foo implements Cloneable {
    public Object clone() {
      try {
        return super.clone();
      } catch (CloneNotSupportedException e) {
        throw new AssertionError();
      }
    }
  }

在应用快速修复后:


  class Foo implements Cloneable {
    public Foo clone() {
      try {
        return (Foo)super.clone();
      } catch (CloneNotSupportedException e) {
        throw new AssertionError();
      }
    }
  }