我必须将此语句public void removeRange(int fromIndex,int toIndex)添加到我的ListType类。
此方法应删除索引范围为fromIndex(包括)和toIndex(不包括)的所有元素。列表中的所有后续元素都应移至列表的前面,以占据已删除元素留下的空白。如果指定的索引之一无效,则此方法应抛出IndexOfBoundException。
当我尝试使用通用类型E在这种方法中解析变量时,出现错误。
错误消息“ E无法解析为变量”
My code
public void removeRange(int fromIndex, int toIndex)
{
if (fromIndex >= elements || fromIndex < 0 || toIndex >=elements || toIndex<0 || toIndex<=fromIndex)
throw new IndexOutOfBoundsException();
for( int i = fromIndex; i <toIndex; ++i)
E temp = remove(i);
// Return the element that was removed.
return;
}
我知道我不能声明泛型E对象,但是我不知道如何解决这个问题?
最佳答案
您的ListType
类应声明它采用通用类型E
。所以你想要像这样的东西:
public class ListType<E> extends ArrayList<E> {
public void removeRange(int fromIndex, int toIndex) {
// your remove logic here
...
// now you can use E here
E temp = remove(i);
return;
}
}
我猜你在这里扩展
ArrayList
。无论哪种方式,都是相同的概念。