创建ListIterator对象

时间:2018-03-07 11:25:35

标签: java interface

如果ListIterator是一个接口,我怎么能像下面那样创建一个ListIterator对象?

LinkedList<String> myList = new LinkedList<String>();

ListIterator<String> iter = myList.listIterator();

2 个答案:

答案 0 :(得分:4)

如果你看一下Java 8中java.util.LinkedList的实现,你会看到它包含这个listIterator()实现:

public ListIterator<E> listIterator(int index) {
    checkPositionIndex(index);
    return new ListItr(index);
}

有效返回的是实现ListItr接口的内部类ListIterator的实例。在调用ListItr方法后,客户端必须使用ListIterator接口与此listIterator()实例进行交互。

答案 1 :(得分:1)

您无法创建界面对象。

  

myList.listIterator();会返回ListItr的对象,而不是ListIterator<E>接口的对象。

private class ListItr extends Itr implements ListIterator<E>{...}

ListItr类实现ListIterator<E>时,您可以从ListIterator<E>引用返回的对象。