我创建了自己的Vector类QueueExtendingVect,它由CInteger元素组成,其中CInteger是我自己的类。
在我的代码中,我尝试覆盖Object的clone()方法来克隆QueueExtendingVect,但不断收到错误。以下是代码:
public Object clone() {
super.clone();
QueueExtendingVect copy = (QueueExtendingVect) this.clone();
for(int i = 0; i < this.size(); i++)
copy.set(i, (CInteger) this.elementAt(i));
}
CInteger类:
package csu.mcdonald;
public class CInteger implements Cloneable {
private int i;
CInteger(int ii) { i = ii; }
void setI(int ii) { i = ii; }
int getI() { return this.i; }
public Object clone() {
return null;
}
public String toString() {
Integer bigI = new Integer(this.i);
return bigI.toString();
}
public boolean equals(Object o) {
if(this.i == ((CInteger)o).i)
return true;
else
return false;
}
}
如何成功克隆载体?谢谢:)
答案 0 :(得分:0)
这应该足够了
public Object clone() {
//EDIT QueueExtendingVect copy = new QueueExtendingVect(this.size());
QueueExtendingVect copy = new QueueExtendingVect(this.size());
for(int i = 0; i < this.size(); i++)
copy.add(elementAt(i));
return copy;
}
顺便说一句,这不是线程安全的。
编辑:修正了界外问题