如何调用枚举方法

时间:2015-09-14 18:01:26

标签: java enumeration

Enumeration API

在Enumeration API中给出的示例中,有以下示例:

for (Enumeration<E> e = v.elements(); e.hasMoreElements();)
   System.out.println(e.nextElement());

但是,如果Enumeration是一个表面,你怎么能在向量的元素上调用这些方法呢? 我的意思是这些方法没有机构(实现)?

1 个答案:

答案 0 :(得分:1)

Enumeration<E> e = v.elements();

这意味着elements()方法返回一个实现Enumeration的类或返回该实例的annonymous innerclass

以下是Vectorelements()方法

的源代码
 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>() {