有关Java迭代的问题。我(有点)熟悉Iterator,ListIterator和Iterable接口,也就是说,我对它们有了了解。但这也是我的问题。
如果我有一个ArrayList的实例,让我们简单地将该实例称为“列表”,然后再使该方法称为“ list.listIterator()”,那么结果(即返回)的对象属于哪个CLASS?
我确实知道它必须是实现接口ListIterator的类,但是仍然不能告诉我它所属的实际特定CLASS。而且在线文档似乎也没有告诉我这一点。还是仅仅是Java类的“内部”(因此是匿名/未命名)?
谢谢!
荷兰。
最佳答案
你可以通过做找出
System.out.println(new ArrayList<String>().listIterator().getClass());
您会看到该类在
ArrayList
中声明,并称为ListItr
。它是
private
。有这样做的充分理由。首先,它使ArrayList
的编写者可以在不破坏任何人的代码的情况下更改实现。另外,您不必关心实际的课程是什么。重要的是它遵守ListIterator
的合同。