gpt4 book ai didi

java - Iterator、ListIterartor 和 Enumeration 的实例

转载 作者:行者123 更新时间:2023-11-29 04:59:41 25 4
gpt4 key购买 nike

有一段代码。

Vector v = new Vector<>();
Iterator it = v.iterator();
ListIterator lit = v.listIterator();
Enumeration enu=v.elements();
System.out.println(it.getClass().getName());
System.out.println(lit.getClass().getName());
System.out.println(enu.getClass().getName());

这里的IteratorListIteratorEnumeration是接口(interface)类型并且有变量保存它们的引用(分别为 itlitenu)。

当我编译这段代码时,我得到了 Vector 的匿名类,即,

java.util.Vector$Itr
java.util.Vector$ListItr
java.util.Vector$1

我想知道这是怎么发生的。

最佳答案

在前两种情况下(java.util.Vector$Itrjava.util.Vector$ListItr,您没有获得 Vector 的匿名类)。 java.util.Vector$something 表示 something 是一个嵌套在 java.util.Vector 类中的类。匿名类没有名称。 ItrListItr 是类名,所以它们绝对不是匿名的。

您确实获得匿名类实例的唯一情况是在 v.elements() 中,因为 Vectorelements() 方法返回一个实现了 Enumeration 接口(interface)的匿名类实例:

public Enumeration<E> elements() {
return new Enumeration<E>() {
int count = 0;

public boolean hasMoreElements() {
return count < elementCount;
}

public E nextElement() {
synchronized (Vector.this) {
if (count < elementCount) {
return (E)elementData[count++];
}
}
throw new NoSuchElementException("Vector Enumeration");
}
};
}

关于java - Iterator、ListIterartor 和 Enumeration 的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32500462/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com