比较方法与泛型

时间:2014-03-24 00:34:22

标签: java generics compare

这是我的问题: 我正在使用类ArrayLinearList来创建不同的数组类型。现在,我必须创建一个布尔方法:compare(Linearlist other)和LinearList是ArrayLinearList的接口。

当我使用compare时,如果比较的元素不同,则此方法会返回false。但我不知道如何工作,因为该元素的其他参数是一个接口,并且要比较的数组是T []数组类型所以当我使用该方法时应该如下所示: element.compare(其他);

那么如何将LinearList对象(其中LinearList是一个接口)转换为t []类型的对象?

public boolean compare(LinearList other){
ArrayLinearList<T> element2 = other;
// cast try:

 Integer size1 = other.size();
 Integer size2 = 0;


 for (int  i = 0; i< size; i++) 
  size2++;

    if (size2 == size1) 
      return true;
        else return false;

//else return false;

}

然后我收到此错误:error: incompatible types: LinearList<CAP#1> cannot be converted to ArrayLinearList<T> ArrayLinearList<T> element2 = other; ^ where T is a type-variable: T extends Comparable<T> declared in class ArrayLinearListTaller1 where CAP#1 is a fresh type-variable: CAP#1 extends Object from capture of ? 1 error

那么,如何将其他转换为元素类型T [],或者如何比较它们?

如果有人可以帮助我,我会非常感激的。)

1 个答案:

答案 0 :(得分:1)

声明应为或public boolean compare(LinearList<? extends T> other),以便编译器知道它从other检索的对象将是T类型或其子类型。< / p>