謹慎的覆蓋clone 方法

2022-02-23 15:26:24 字數 402 閱讀 7276

如果乙個類實現了cloneable方法,就可以呼叫clone方法,並且返回該物件的逐域拷貝,否則丟擲clonenotsupportedexception異常。

下面是乙個演示clone方法的類,注意深度拷貝問題:

public class testclone implements cloneable

@override public string tostring()

@override public testclone clone() catch (clonenotsupportedexception e) }}

class inclass

輸出結果為:

obeject1 10

obeject1 10

change 10

change 10

謹慎的覆蓋clone 方法

如果乙個類實現了cloneable方法,就可以呼叫clone方法,並且返回該物件的逐域拷貝,否則丟擲clonenotsupportedexception異常。下面是乙個演示clone方法的類,注意深度拷貝問題 public class testclone implements cloneable o...

Java學習筆記 謹慎地覆蓋clone

1 clone方法的通用約定是非常弱的 x.clone x x.clone getclass x.getclass x.clone equals x 都不是絕對的要求 2 clone方法就是另乙個構造器,你必須保證它不會傷害到原始的物件,並確保正確地建立被轉殖物件中的約束條件。3 clone架構與應...

第11條 謹慎地覆蓋clone

cloneable介面表明這樣的物件時允許轉殖的,但這個介面並沒有成功達到這個目的,主要是因為它缺少乙個clone方法,object的clone方法是受保護的。如果不借助反射,就不能僅僅因為乙個物件實現了colneable就可以釣魚clone方法,即使是反射呼叫也不能保證這個物件一定具有可訪問clo...