【发布时间】:2014-03-11 21:06:46
【问题描述】:
我创建了自己的 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;
}
}
如何成功克隆 Vectors?谢谢:)
【问题讨论】:
-
您遇到了什么错误? public Object clone() { 也没有返回任何东西,那是真正的代码吗?还应该将 super.clone() 分配给“复制”而不是 this.clone()
-
对不起,我应该退回副本。我收到错误“克隆()不可见”。我不完全确定这意味着什么。