我正在编写一个程序,该程序构造了一个可以接收各种对象的集合。但是,当我尝试克隆集合时,尽管声明了CloneNotSupportedException并实现了Cloneable接口,但我却得到了CloneNotSupportedException。
这是代码,
import java.util.ArrayList;
public class NewSet implements Cloneable {
private ArrayList<Object> objects;
public NewSet() {
this.objects=new ArrayList<Object>();
}
public void add(Object b) {
if(this.contains(b)) {
return;
}
else {
objects.add(b);
}
}
public boolean contains(Object h) {
for(int x=0; x<this.size(); x++) {
if(this.get(x)==h) {
return true;
}
}
return false;
}
public Object get(int i) {
return objects.get(i);
}
public int size() {
return objects.size();
}
public Object clone() throws CloneNotSupportedException {
NewSet copy= (NewSet) super.clone();
return copy;
}
public static void main(String[] args) {
NewSet mb= new NewSet();
mb.add("b");
mb.add("c");
mb.add("d");
Object mc=mb.clone();
}
}
任何帮助,将不胜感激。
最佳答案
您没有得到CloneNotSupportedException。您从编译器中收到一个错误,taht说,由于clone方法引发CloneNotSupportedException,因此您需要捕获异常,或像其他任何检查的异常一样在throws子句中声明该异常:
未报告的异常java.lang.CloneNotSupportedException;必须被抓住或宣布被抛出
关于java - 实现Cloneable并声明CloneNotSupportedException,但仍会得到CloneNotSupportedException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26702752/