Подтвердить что ты не робот

Java - Enum с полем массива

Я хочу сохранить имена списков и индивидуальные псевдонимы для каждого имени в качестве 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[] {...}, поэтому я подумал, может ли кто-нибудь предложить альтернативный, более сжатый способ реализации этого?

Приветствия,

Пит

4b9b3361

Ответ 1

Параметры Vararg:

private Names(String... nicknames) {

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

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

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