将硬编码数组值传递给构造函数

1 java arrays enums

有没有办法指定接受数组的构造函数,然后直接向该构造函数传递该数组的预定义值列表.

这是一个例子:

假设你有一个名为Unit枚举.

public enum Unit {

    PROBE   (null),
    STALKER (null);

    private final String[] require;

    Unit(String[] require) {
        this.require  = require;
    }

    public String[] require() { return require; }
}
Run Code Online (Sandbox Code Playgroud)

上面的代码是有效的但如果我想用值列表替换空值怎么办?

例如,这是我想做的,但它是无效的:

public enum Unit {

    PROBE    (null),
    STALKER  ({"cybernetics core"});

    private final String[] require;

    Unit(String[] require) {
        this.require  = require;
    }

    public String[] require() { return require; }
}
Run Code Online (Sandbox Code Playgroud)

这次,在上面的例子中,我试图将一个数组元素值传递给构造函数.我意识到我可以指定一个数组来存储这个值,String[] stalker = {"cybernetics core"};但是考虑到在我的完整项目中我需要在这里输入不同的数组值,我正在寻找一种更优雅的方式.在那儿?

Rob*_*ahl 6

您可以使用常规数组构造函数:

STALKER(new String[] { "value1", "value2" });
Run Code Online (Sandbox Code Playgroud)