在java中克隆方法与复制构造函数。哪一个是正确的解决方案。每个案例在哪里使用?
3 回答

倚天杖
TA贡献1828条经验 获得超3个赞
clone()
Cloneable
clone()
public
.
clone()
BeanUtils.cloneBean(original)
创建一个浅克隆,就像由 Object.clone()
..(这堂课是从 公豆)SerializationUtils.clone(original)
创造了一个深克隆体。(也就是说,整个属性图被克隆,而不仅仅是第一级)(从 公朗),但是所有类都必须实现 Serializable
Java深度克隆库
提供深度克隆,而不需要实现 Serializable

冉冉说
TA贡献1877条经验 获得超1个赞
考虑到与cloneable相关的所有问题,可以肯定地说,其他接口不应该扩展它,为继承而设计的类(项目17)不应该实现它。由于它的许多缺点,一些专业的程序员只是选择永远不覆盖克隆方法,从来不调用它,也许,除了复制数组。如果为继承设计类,请注意,如果选择不提供行为良好的受保护的克隆方法,子类不可能实现cloneable。
他们不依赖于一种易受风险的语言外对象创建机制。 它们并不要求对文件很少的公约进行强制执行。 它们与最终字段的正确使用没有冲突 它们不会抛出不必要的检查异常 他们不需要石膏。
List<Double> original = // some listList<Double> copy = new ArrayList<Double>(original);
添加回答
举报
0/150
提交
取消