今天看core java看到了clone函數(shù)
要想使用clone函數(shù)首先必須實現(xiàn)接口Cloneable,重新定義clone函數(shù)為公有的,并調(diào)用super.clone()
class Employee implements Cloneable
{
public Object clone()
{
try
{
return super.clone();
}
catch (CloneNotSupportedException e) { return null; }
}
..........
}
使用clone函數(shù)是要注意一個淺拷貝和深拷貝的問題,默認(rèn)的拷貝操作都是淺拷貝——沒有克隆對象內(nèi)部引用的其他對象,所以要實現(xiàn)深拷貝,需要克隆可變實例字段需重建立clone方法
具體知識可參考core java章節(jié)--接口和內(nèi)部類
要想使用clone函數(shù)首先必須實現(xiàn)接口Cloneable,重新定義clone函數(shù)為公有的,并調(diào)用super.clone()
class Employee implements Cloneable
{
public Object clone()
{
try
{
return super.clone();
}
catch (CloneNotSupportedException e) { return null; }
}
..........
}
使用clone函數(shù)是要注意一個淺拷貝和深拷貝的問題,默認(rèn)的拷貝操作都是淺拷貝——沒有克隆對象內(nèi)部引用的其他對象,所以要實現(xiàn)深拷貝,需要克隆可變實例字段需重建立clone方法
具體知識可參考core java章節(jié)--接口和內(nèi)部類