Java - 包含数组字段的枚举

14 java arrays enums refactoring constants

我想将每个名称的列表名称和单个昵称存储为Java中的Enum.昵称的数量不会有所不同.目的是能够从昵称中获取全名.目前我已经实现了这样:

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
    }
}
Run Code Online (Sandbox Code Playgroud)

我不喜欢不得不重复new String[] {...},所以我想知道是否有人可以建议一种替代的,更简洁的方法来实现这一点?

干杯,

皮特

Nik*_*bak 35

Vararg参数:

private Names(String... nicknames) {
Run Code Online (Sandbox Code Playgroud)

现在您可以在不显式创建数组的情况下调用构造函数:

ELIZABETH("Liz", "Bet", "another name")
Run Code Online (Sandbox Code Playgroud)

详细信息(请参阅"任意数量的参数"部分)