2010-07-13 3 views
4
enumeration e=vector.elements 

Но векторный класс не реализует перечисление, то как он возвращается. Справочник перечисления. Но e ссылается на java.util.vector $ 1. Что такое «Вектор $ 1» ???

ответ

6

Vector$1 является anonymous class. Vector.elements() создает новый экземпляр этого анонимного класса, который реализует интерфейс Enumeration.

Вот исходный код для Vector.elements() (плохо отформатированный, как обычно):

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"); 
    } 
}; 
}