在Enumeration API中给出的示例中,有以下示例:
for (Enumeration<E> e = v.elements(); e.hasMoreElements();)
System.out.println(e.nextElement());
但是,如果Enumeration是一个表面,你怎么能在向量的元素上调用这些方法呢? 我的意思是这些方法没有机构(实现)?
答案 0 :(得分:1)
Enumeration<E> e = v.elements();
这意味着elements()
方法返回一个实现Enumeration
的类或返回该实例的annonymous innerclass
。
以下是Vector
类elements()
方法
public Enumeration<E> More ...elements() {
312 return new Enumeration<E>() {
313 int count = 0;
314
315 public boolean More ...hasMoreElements() {
316 return count < elementCount;
317 }
318
319 public E More ...nextElement() {
320 synchronized (Vector.this) {
321 if (count < elementCount) {
322 return elementData(count++);
323 }
324 }
325 throw new NoSuchElementException("Vector Enumeration");
326 }
327 };
328 }
如果您发现它正在返回return new Enumeration<E>() {