Вопрос по constants, refactoring, enums, java, arrays – Java - Enum с полем массива

14

Я хочу сохранить список имен и отдельных псевдонимов для каждого имени как Enum в Java. Количество псевдонимов не будет меняться. Цель состоит в том, чтобы иметь возможность получить полное имя из псевдонима. В настоящее время я реализовал это так:

public enum Names {

    ELIZABETH(new String[] {"Liz","Bet"}),    
    ...
    ;

    private String[] nicknames;

    private Names(String[] nicknames)
    {
        this.nicknames = nicknames
    }


    public Names getNameFromNickname(String nickname) {
       //Obvious how this works
    }
}

Мне не нравится повторятьnew String[] {...}Итак, я хотел бы знать, может ли кто-нибудь предложить альтернативный, более краткий, способ реализации этого?

Ура,

Пит

Ваш Ответ

1   ответ
35

Параметры Vararg:

private Names(String... nicknames) {

Теперь вы можете вызывать конструктор без явного создания массива:

ELIZABETH("Liz", "Bet", "another name")

подробности (см. раздел «Произвольное количество аргументов»)

Похожие вопросы