Java對象克隆
阿新 • • 發佈:2017-08-10
cas ann 需要 pub .cn cell order try-catch padding
點擊鏈接查看詳細內容
Java不提供克隆(復制)對象的自動機制。克隆對象意味著逐位復制對象的內容。要支持克隆操作,請在類中實現clone()
方法。Object
類中的clone()
方法的聲明如下:
1 |
protected Object clone() throws CloneNotSupportedException
|
clone()
方法聲明為protected
。 因此,不能從客戶端代碼調用它。以下代碼無效:
1 2 |
Object obj = new Object();
Object clone = obj.clone(); // Error. Cannot access protected clone() method |
需要在類中聲明clone()
方法為public
來克隆類的對象。
它的返回類型是Object
。 這意味著將需要使用clone()
方法轉換返回值。
假設MyClass
是可克隆的。 克隆代碼將如下所示
1 2 |
MyClass mc = new MyClass();
MyClass clone = (MyClass)mc.clone(); // Need to use a cast
|
Object
類中的clone()
方法會拋出CloneNotSupportedException
。要調用clone()
方法,需要將調用放在try-catch
塊中,或者重新拋出異常。
Java對象克隆