我已經在我的Claus
類調用一個函數接受類型Claus
有一個功能。我目前正在傳遞this
作爲參數,但它正在編輯我不希望它做的類的當前實例。相反,我希望它克隆該類的當前實例並對其進行編輯,並將這些副本分開。我怎樣才能做到這一點?
編輯
也許我應該澄清我的問題遠一點......
我有一個對象,它是另一個對象內.. e.g Claus
和floss
。我一直在閱讀shallow copy
vs deep copy
,我想我的Claus
正確複製。我正在做這樣的...
public Claus(Claus g){
cla = new Floss(g.getFloss());
//irrelevant other variables...
p = g.getP();
c = g.getC();
}
然而,我宣佈在構造完全相同的方式..這是內Claus
功能....
cla = new Floss(g.getFloss());
其中cla = Floss
變量和g = Claus
這是傳遞給構造函數。 Floss
對象似乎並不像它應該創建一個深層副本。這是爲什麼發生?
您能提供代碼來說明您在做什麼嗎? – artdanil
劑量克隆實施克隆?如果你通過克隆怎麼辦?你的描述本身沒有不好的代碼氣味,但可能是非常輕微的氣味。我想知道你是否在做錯事。也許你會更好地告訴我們你想要達到什麼樣的行爲,而不是你如何在代碼中實現它。 –
男人就像在這裏克隆人的攻擊。 –