我瞭解Java克隆的工作原理以及反對使用它的論點。可以說我無論如何都無法使用它。爲什麼不在內部重寫.clone?
爲方便起見,我想如下編寫類Foo的克隆方法:
@Override
public Foo clone(){
Foo f = (Foo)super.clone();
//Replace mutable fields
return f;
}
據我可以告訴這將是安全的。但是,我注意到API中的Cloneable類不這樣做。這是否有一個原因,這是不好的風格?
請注意,這隻有在你像這樣使用它時纔有用:'Foo foo = ...; Foo bar = foo.clone()'。 – biziclop