создание экземпляров java-перечислений - PullRequest
5 голосов
/ 31 мая 2011

Существуют ли какие-либо объекты, созданные в соответствии с каждой из констант перечисления ARROGANT, RASCAL, IDIOT?

public enum Manager {
    ARROGANT,
    RASCAL,
    IDIOT
}

и если следующий код делает то же самое, что и выше, явно, но

public enum Manager {
    ARROGANT(),
    RASCAL(),
    IDIOT();

    Manager() {}
}

Ответы [ 2 ]

6 голосов
/ 31 мая 2011

Да, для каждой константы перечисления будет создан ровно один экземпляр.

И да, второй пример кода фактически идентичен.

4 голосов
/ 31 мая 2011

Да, оба должны приводить к одному и тому же байт-коду, первый - только синтаксический сахар.

Второй полезен, когда вам нужно связать значения с перечислением.

enum Numbers{
    ONE(1),TWO(2),THREE(3),TEN(10);
    Numbers(int i){
       value = i;
    }
    public final int value;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...