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块中,或者重新抛出异常。
浙公网安备 33010602011771号