我正在尝试clone()
在DoubleLinkedList
. 现在,问题是通过“约定”实现它比仅仅创建一个新的DoubleLinkedList
并用我当前的 DoubleLinkedList 的所有元素填充它要麻烦得多。
这样做时我没有看到任何不便之处吗?
这是我目前的方法:
@Override
public DoubleLinkedList<T> clone() {
DoubleLinkedList<T> dll = new DoubleLinkedList<T>();
for (T element : dll) {
dll.add(element);
}
return dll;
}
这是公约的内容:
@Override
public DoubleLinkedList<T> clone() {
try {
DoubleLinkedList<T> dll = (DoubleLinkedList<T>)super.clone();
//kinda complex code to copy elements
return dll;
} catch (CloneNotSupportedException e) {
throw new InternalError(e.toString());
}
}