发送向量作为参数在Java
问题描述:
这可能是一个愚蠢的问题。我相信很清楚我想实现什么,但我想不出它的语法。假设我有:发送向量作为参数在Java
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);
}
这是不可能的,因为你写的那些两行合并成否则foo({1, 2, 3})
。
或者你可以写这样的:
public static void main(String args[]) {
foo(new int[]{1, 2, 3});
}
的int...
语法我在第一个版本写了被称为“可变参数”,如果你想了解更多关于它的 。 由于您是初学者,我不建议使用它,因为您可能会遇到一些陷阱, ,它可能比有用的更令人困惑。 现在坚持第二或第三个版本。
+0
@BillMack也很好,看到我更新的答案。 – janos
您必须声明一个新的数组。您不必将其分配给变量。 –
这似乎工作。傻我我没有尝试foo(new int [] {1,2,3}); –