它更容易用代码解释,所以在这里
Object anObj;
anObj = new MyObj();
anObj = new Rectangle();
anObj.clone();//this doesnt exist because its on the root Object class
在此示例中,我可以使用什么来代替 Object.clone() 方法?
------------------------------------ 额外信息 ------------- -----
我已经添加了额外的信息,但它似乎已经出现在所有答案的中间,所以它再次出现,因此可以阅读。
嗨,所有这些对克隆或复制的主题都非常有帮助,我现在需要考虑一下。但他们对最初的问题没有帮助。也许我提供的更多信息将帮助您了解我所追求的。
我正在覆盖我的每个对象的克隆,并添加完全克隆对象所需的所有其他克隆和复制方法,这包括添加自定义方法来复制缓冲图像。IE:-
public Object clone() {//i copied from 'thelost's answer
try {
CloningExample copy = (CloningExample)super.clone();
copy.names = (LinkedList)names.clone();
return copy;
} catch (CloneNotSupportedException e) {
return null;
}
}
但是我的类中有一个变量是一个对象,但是因为它包含不同类型的各种其他对象,所以我的每个类型都有一个克隆方法,但是没有检查它是否是我的每个类型然后调用 clone()我的类型很长,因为我有很多类型,我看不到如何轻松复制或克隆对象。有没有办法让我只写这样的静态方法?
static findTypeAndCopy(Object thisobj){
if(thisobj==null)
return null;
if(thisobj instanceOf MyObj1){
return ((MyObj1)thisobj).clone();
}else if(thisobj instanceOf MyObj2){
return ((MyObj2)thisobj).clone();
...
etc
}
???