任何人都可以给我一个实际用法,其中使用了克隆,我了解它是如何完成的以及它的类型,但我没有看到它的实际用法。我还在某处读过它用于保存对象的状态,但我仍然认为很少有整个对象的状态会非常重要。什么是克隆的实际用法
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