java.util.Vector $ 1 - PullRequest
       24

java.util.Vector $ 1

4 голосов
/ 13 июля 2010
enumeration e=vector.elements

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

1 Ответ

6 голосов
/ 13 июля 2010

Vector$1 - это анонимный класс .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");
    }
};
}
...