有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

带数组字段的Java枚举

我想在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) 个答案

  1. # 1 楼答案

    Vararg参数:

    private Names(String... nicknames) {
    

    现在,无需显式创建数组即可调用构造函数:

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

    Details(参见“任意数量的参数”一节)