Java - 包含数组字段的枚举

时间:2010-10-30 16:57:22

标签: java arrays refactoring enums 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
    }
}

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

干杯,

皮特

1 个答案:

答案 0 :(得分:35)

Vararg参数:

private Names(String... nicknames) {

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

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

Details(参见“任意数量的参数”部分)