我想知道为什么java.util.Enumeration被JVM认为是java.util.Iterator?他们没有继承关系。
public interface Enumeration<E> {
....
}
public interface Iterator<E> {
...
}
Hashtable<String, Object> hashTable = new Hashtable<>();
hashTable.put("key1", 1);
hashTable.put("key2", 2);
hashTable.put("key3", 3);
Enumeration<Object> enumeration = hashTable.elements();
System.out.println(enumeration instanceof Enumeration);
System.out.println(enumeration instanceof Iterator);// why true here?
最佳答案
instanceof
运算符将对象与指定的类型进行比较。
自返回Enumarator
实现类型Iterator
,条件变为true
。
private class Enumerator<T> implements Enumeration<T>, Iterator<T>
这里是 HashTable's Enumerator<T>
的源代码定义。
关于java - 枚举被 JVM 视为迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32520223/