1. 程式人生 > >Java對象克隆

Java對象克隆

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對象克隆