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