Java - 枚举与数组字段

2022-09-03 04:16:12

我想在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

Vararg 参数:

private Names(String... nicknames) {

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

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

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


答案 2