让我们看下面的例子:
public class Test {
public void main(String[] args) {
int[] someInts = {1, 2, 5};
new Dummy(1, someInts, "Hello"); //works
new Dummy(1, new int[] {1, 2, 5}, "Hello"); //works
new Dummy(1, {1, 2, 5}, "Hello"); //fails
new Dummy(1, [1, 2, 5], "Hello"); //fails
}
public class Dummy {
Dummy(int someNumber, int[] someArray, String message) {
}
}
}
对于这两条失败的行,Eclipse 会说:“构造函数 Test.Dummy(int, int, int, int, String) 未定义”
首先,我不明白为什么它不将数组识别为数组(仅在失败的行中)。
其次,为什么我不能将数组直接传递到构造函数中,而必须创建一个变量来传递它?
第三,有没有办法创建一个构造函数,它接受类似的行,这意味着没有变量或 new int[] {...}
语句?
如果有人知道在标题中表述这一点的更好方法,请随时改进它。
最佳答案
如前所述,这就是在一般情况下创建数组文字的方式。
您可以将数组替换为 int... array
varargs 参数,但随后您需要将其作为最后一个参数。
Dummy(int someNumber, String message, int... someArray) {}
new Dummy(1, "Hello", 1, 2, 5);
关于Java - 将数组直接传递到构造函数中,而不是作为变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33982047/