我阅读了很多有关对象的clone()方法和可克隆接口的线程,但我找不到我的问题的合法答案。
长话短说:
我发现 Object 有一个方法 clone() ,它可以“神奇地”克隆你的对象。但是,如果不实现 Cloneable 接口,就无法使用该方法,因为该接口允许 Object 使用clone() 方法。那么他们为什么要这么做呢?为什么每个对象不应该从一开始就可以克隆?
对于一些可变数据来说,Cloneable 是有意义的。
这没有意义
- 不可变数据
- 您可能需要浅拷贝或深拷贝的地方。
- 代表资源的对象,例如线程、套接字、GUI 组件
- 单例和枚举类型
- 可变状态,仅应复制数据以避免创建新对象。
一些编码风格建议将新的可变数据对象保持在最低限度。可克隆并不适合所有情况,如果您将所有对象设置为可克隆,您将无法彻底关闭它。
注意:有许多项目避免在任何地方使用 Cloneable。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)