亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

深度克隆對象

深度克隆對象

幕布斯6054654 2019-05-21 16:04:48
深度克隆對象我想做的事情如下:MyObject myObj = GetMyObj(); // Create and fill a new objectMyObject newObj = myObj.Clone();然后更改未在原始對象中反映的新對象。我不經常需要這個功能,所以當有必要的時候,我會使用創建一個新對象然后單獨復制每個屬性,但它總是讓我覺得有更好或更優雅的處理方式情況。如何克隆或深度復制對象,以便可以修改克隆的對象而不會在原始對象中反映任何更改?
查看完整描述

5 回答

?
慕虎7371278

TA貢獻1802條經驗 獲得超4個贊

不使用的原因ICloneable不是因為它沒有一個通用的接口。 不使用它的原因是因為它含糊不清。它不清楚你是否得到淺或副本; 這取決于實施者。

是的,MemberwiseClone做一個淺的副本,但相反的MemberwiseClone是不是Clone; 或許DeepClone,它可能不存在。當您通過其ICloneable接口使用對象時,您無法知道底層對象執行哪種克隆。(并且XML注釋不會說清楚,因為您將獲得接口注釋而不是對象的Clone方法上的注釋。)

我通常做的只是制作一個Copy完全符合我想要的方法。


查看完整回答
反對 回復 2019-05-21
?
長風秋雁

TA貢獻1757條經驗 獲得超7個贊

我更喜歡復制構造函數到克隆。意圖更清晰。


查看完整回答
反對 回復 2019-05-21
  • 5 回答
  • 0 關注
  • 681 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號