clone()vs copy constructor vs factory方法?
我在Java上实现了克隆()的快速谷歌,发现:http://www.javapractices.com/topic/TopicAction.do?Id = 71
它有以下评论:
复制构造函数和静态工厂方法提供了克隆的替代方法,并且更容易实现。
我想做的就是做一份深刻的副本。实现clone()似乎很有意义,但这篇谷歌排名很高的文章让我有点害怕。
以下是我注意到的问题:
这是一些无法编译的伪代码。
public class MyClass<T>{ .. public void copyData(T data){ T copy=new T(data);//This isn't going to work. } ..}
示例1:在泛型类中使用复制构造函数。
拥有可重用代码的接口非常好。
public class MyClass<T>{ .. public void copyData(T data){ T copy=data.clone();//Throws an exception if the input was not cloneable } ..}
示例2:在泛型类中使用clone()。
我注意到克隆不是静态方法,但是不是仍然需要制作所有受保护字段的深层副本吗?在实现clone()时,在非可克隆子类中抛出异常的额外工作对我来说似乎微不足道。
我错过了什么吗?任何见解将不胜感激。
泛舟湖上清波郎朗
侃侃无极
千巷猫影
相关分类