0

我正在尝试在 Java 中扩展 AbstractSequentialList 类。该类实现了一个需要创建 ListIterator 方法的接口。我创建了下面的方法来简单地开始,但我收到警告消息说:

ListIterator is a raw type. References to generic type ListIterator<E> should be parameterized.  

这是什么意思?我有点不知所措,为什么在我运行这段代码时这给了我一个错误..

public ListIterator listIterator(int i){

        ListIterator listiterator = this.listIterator();

        return listiterator;
    }
4

1 回答 1

0

AbstractSequentialList是通用的,它返回的 ListIterator 也应该是通用的。这将确保使用该迭代器完成的操作的类型安全。确保您的子类是通用的(MyAbstractSequentialList<T>),并将您的代码更改为:

public ListIterator<E> listIterator(int i){

        ListIterator<E> listiterator = this.listIterator();

        return listiterator;
}

你可以看看 Java 的LinkedList源代码,它扩展了AbstractSequentialList.

你也可以让你的类是非泛型的,但是你必须扩展一个具体的类型AbstractSequentialList(即使用一个指定的类型参数)。在这种情况下,也将E上面代码中的 s 替换为该类型。

于 2012-07-03T04:06:03.467 回答