任何人都可以給我一個實際用法,其中使用了克隆,我瞭解它是如何完成的以及它的類型,但我沒有看到它的實際用法。我還在某處讀過它用於保存對象的狀態,但我仍然認爲很少有整個對象的狀態會非常重要。什麼是克隆的實際用法
0
A
回答
0
如果你有一個對象y在對象X中被封裝(例如它是私有的),但是你提供了一個訪問器方法(比如getY()),那麼你可能會冒險將引用返回給你的私有對象,這並不好。您不希望客戶端代碼能夠獲取對其的引用。因此,您可以在getY()中複製或克隆對象。如前所述,雖然複製是可能首選對克隆 - 見有效的Java項目11
這裏是示例代碼:
public class X {
private Date y = new Date();
// other code here
public Date getY() {
//this could be bad:
//return y;
//this is good:
return new Date(y);
}
+0
哎呀忘了提及另一個參考:有效的Java項目24有防禦性複製的信息。 – 2013-05-09 16:04:45
+0
一個非常合乎邏輯的答案,謝謝!我會更多地討論防禦性複製 – Fardu 2013-05-09 18:17:37
0
有時您將對象屬性加載到表單,然後在對(文本框,複選框,...)進行更改後將每個屬性綁定到(textbox,combobox,...),即使您取消了也可以「T得到的原始值,因此克隆是最好的選擇,
克隆的對象,然後綁定,如果要取消原來的對象始終是不變的,這只是一個案例
相關問題
- 1. 爲什麼使用克隆()?
- 2. jquery克隆多個實例爲什麼
- 3. 什麼時候Perl 6數組克隆不是克隆?
- 4. 什麼是克隆對象的instanceof?
- 5. 什麼是淺克隆的限制
- 6. 什麼是克隆MutableMap的習慣用法?
- 7. 什麼是數據庫克隆?
- 8. 什麼是'線程限制'克隆?
- 9. 實現克隆方法
- 10. 超級克隆做什麼?
- 11. jQuery Loop?克隆?爲什麼?
- 12. 爲什麼PHP類克隆
- 13. Java中實際是什麼?
- 14. 什麼是monoids的實際使用?
- 15. toContain()的實際用途是什麼?
- 16. 什麼是argsort)的實際應用(
- 17. 什麼是System.Transactions的實際用途?
- 18. Socket.ExclusiveAddressUse的實際用途是什麼?
- 19. Android NDK的實際用途是什麼?
- 20. array_diff_uassoc的實際用途是什麼?
- 21. jQuery的實際用途是什麼?
- 22. 克隆Web服務的最簡單方法是什麼?
- 23. 複製/克隆畫筆的最佳方法是什麼?
- 24. 克隆SVGMatrix的規範方法是什麼?
- 25. 在Jung中克隆圖形的最佳方法是什麼?
- 26. 克隆observables的最佳方法是什麼?
- 27. 幾次克隆對象的最快方法是什麼
- 28. 從github克隆後安裝rails的正確方法是什麼?
- 29. 在WPF中克隆TabItem的最簡單方法是什麼?
- 30. Java中擴展方法的實際用法是什麼?
克隆或複製帶來什麼影響? (後者幾乎總是首選。) – 2013-05-09 15:31:39
E.g.我們想在方法中改變對象的語句,但是在這個方法執行後我們要把對象返回到初始狀態。 – bsiamionau 2013-05-09 15:32:07
我不行。自1997年5月以來,我一直使用Java進行編程,而且我從未找到它的用途,或者「複製構造函數」。 – EJP 2013-05-10 01:23:39