Java - 带有数组字段的枚举

标签 java arrays refactoring enums constants

我想在 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[] {...},所以我想知道是否有人可以建议一种替代的、更简洁的实现方法?

干杯,

皮特

最佳答案

可变参数:

private Names(String... nicknames) {

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

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

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

关于Java - 带有数组字段的枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4059702/

相关文章:

java - 在 JavaFX 中设置按钮操作时出现 "Cannot find symbol constructor, EventHandler does not take parameters"

java - 如何计算大于限制的数字,并使用 BigInteger

php - 重构 ZF Controller 文件?

python - 基于一列元素对两个数组进行排序和连接

visual-studio-2008 - 一次在多个属性上使用 "convert to auto property"

parameters - 函数参数过多怎么办?

java - 有人有使用 J/XFS 的经验吗?

java - 获取 mongodb 身份验证失败错误

javascript - 使用 Object.prototype.toString 时有哪些边界情况?

arrays - 快速对 2 个数组进行排序