在Java中发送向量作为参数
这可能是一个愚蠢的问题。我相信我想要实现的目标很清楚,但我想不出它的语法。假设我有:在Java中发送向量作为参数,java,arrays,parameters,Java,Arrays,Parameters,这可能是一个愚蠢的问题。我相信我想要实现的目标很清楚,但我想不出它的语法。假设我有: public void foo(int[] v){ } public static void main(String args[]){ foo({1, 2, 3}); } 我可以在不声明新数组的情况下调用foo吗?如果是,如何编译?您的代码没有按照您编写的方式编译。但这会,也许这就是你想要的: public void foo(int... v) { // ... } public sta
public void foo(int[] v){
}
public static void main(String args[]){
foo({1, 2, 3});
}
我可以在不声明新数组的情况下调用foo吗?如果是,如何编译?您的代码没有按照您编写的方式编译。但这会,也许这就是你想要的:
public void foo(int... v) {
// ...
}
public static void main(String args[]) {
foo(1, 2, 3);
}
在这里,传递给foo
的值将自动转换为数组。v
的值实际上是一个int[]
或者,保留foo
的原始签名,
你可以这样写:
public void foo(int[] v) {
// ...
}
public static void main(String args[]) {
int[] params = {1, 2, 3};
foo(params);
}
public static void main(String args[]) {
foo(new int[]{1, 2, 3});
}
正如您编写的那样,不可能将这两行以其他方式组合成foo({1,2,3})
或者你可以这样写:
public void foo(int[] v) {
// ...
}
public static void main(String args[]) {
int[] params = {1, 2, 3};
foo(params);
}
public static void main(String args[]) {
foo(new int[]{1, 2, 3});
}
我在第一个版本中编写的int..
语法称为“varargs”,
如果你想了解更多。
由于您是初学者,我不建议您使用它,
因为你可能会遇到一些陷阱,
而且它可能更令人困惑,而不是有用。
现在请坚持使用第二个或第三个版本。您的代码不是按照您编写的方式编译的。但这会,也许这就是你想要的:
public void foo(int... v) {
// ...
}
public static void main(String args[]) {
foo(1, 2, 3);
}
在这里,传递给foo
的值将自动转换为数组。v
的值实际上是一个int[]
或者,保留foo
的原始签名,
你可以这样写:
public void foo(int[] v) {
// ...
}
public static void main(String args[]) {
int[] params = {1, 2, 3};
foo(params);
}
public static void main(String args[]) {
foo(new int[]{1, 2, 3});
}
正如您编写的那样,不可能将这两行以其他方式组合成foo({1,2,3})
或者你可以这样写:
public void foo(int[] v) {
// ...
}
public static void main(String args[]) {
int[] params = {1, 2, 3};
foo(params);
}
public static void main(String args[]) {
foo(new int[]{1, 2, 3});
}
我在第一个版本中编写的int..
语法称为“varargs”,
如果你想了解更多。
由于您是初学者,我不建议您使用它,
因为你可能会遇到一些陷阱,
而且它可能更令人困惑,而不是有用。
现在请使用第二个或第三个版本。您必须声明一个新数组。您不必将其分配给变量。这似乎有效。愚蠢的我,我没有试过foo(newint[]{1,2,3});您必须声明一个新数组。您不必将其分配给变量。这似乎有效。愚蠢的我,我没有试过foo(newint[]{1,2,3});