java:如何使对象成为List?

时间:2017-11-13 02:29:04

标签: java

我有

List<String> uniqueStrings = stringSet.getElements();
CompSet<String> stringSet2 = new CompSet<>(uniqueStrings);
assert stringSet.equals(stringSet2);

其中uniqueStrings是List包含“a”,“b”,“c”。

在班级CompSet中,我有一个等于函数,以查看传递给函数的对象内容是否与CompSet的内容相同。

public List<T> getElements() {
    List<T> ele = new ArrayList();
    for (int i =0;i<NUBMER_OF_BUCKETS;i++){
        ele.addAll(storage[i]);
    }
    return ele;
}

public boolean equals(Object other){
    List<T> x = (List)other;

    return x.equals(this.getElements());
}

然而,当我执行代码时,会发生以下错误:

  

java.lang.ClassCastException:hk.edu.polyu.comp.comp2021.assignment4.CompSet无法强制转换为java.util.List

有什么想法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

我认为问题在这里......

public List<T> getElements() {
     List<T> ele = new ArrayList();
      for (int i =0;i<NUBMER_OF_BUCKETS;i++){
         ele.addAll(storage[i]);
      }
  return ele;
}

您在编写方法getElements()并返回java.util.List中创建了类compSet。

但是在这一行中也有一些混乱。

CompSet<String> stringSet2 = new CompSet<>(uniqueStrings);

你为此定义了构造函数吗?但你仍然不能这样做因为uniqueString是string&amp;的列表。 CompSet是同一类的对象。