这是我的问题: 我正在使用类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 [],或者如何比较它们?
如果有人可以帮助我,我会非常感激的。)
答案 0 :(得分:1)
声明应为或public boolean compare(LinearList<? extends T> other)
,以便编译器知道它从other
检索的对象将是T
类型或其子类型。< / p>