【发布时间】:2016-02-02 11:08:21
【问题描述】:
我了解 Java 克隆的工作原理以及反对使用它的论点。可以说无论如何我都死心塌地地使用它。
为方便起见,我想为 Foo 类编写一个克隆方法,如下所示:
@Override
public Foo clone(){
Foo f = (Foo)super.clone();
//Replace mutable fields
return f;
}
据我所知,这是安全的。但是,我注意到 API 中的 Cloneable 类不这样做。这是有原因的吗?是不是风格不好?
【问题讨论】:
-
请注意,这仅在您这样使用时才有用:
Foo foo = ...; Foo bar = foo.clone()。