我试图编写我自己的ArrayList版本(了解它是如何工作的),并且我正在查看Cloneable接口,该接口由java.lang.ArrayList执行(我想保留与原始版本相同的合同) 。Cloneable和Collection
我对clone()方法的定义有点困惑,希望有人能为我的情况阐明它。
我不确定的部分是,如果某人在我的集合上使用了clone()方法,它应该返回一个新的ArrayList(意味着不是对现有引用的引用)。 但是:
- 这是否意味着每个包含的对象都需要被克隆?
- 我是否必须使用'新'为每个显式创建一个新的实例(这应该是很慢?)
- 我应该尝试在我的集合的对象上使用clone()方法,以及如何确保它们覆盖clone()方法,因为Cloneable中的定义表明它不是明确需要的(该方法不在Interface中)?
在此先感谢您的帮助。
你给说必须做一个现场的场复制链接。对我来说,这听起来像是一个浅拷贝,而不是一个深层(递归)拷贝。 – Patashu
参见http://stackoverflow.com/questions/4081858/about-java-cloneable –