CloneNotSupportedException

CloneNotSupportedException

我正在编写一个程序,该程序构造了一个可以接收各种对象的集合。但是,当我尝试克隆集合时,尽管声明了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/

10-15 13:18