这可能是一个愚蠢的问题。我相信我想要实现的目标非常清楚,但我想不出它的语法。假设我有:
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...
语法称为“varargs”,
如果你想了解更多相关内容。
由于你是初学者,我不建议使用它,
因为你可能会遇到一些陷阱,
它可能更令人困惑而不是有用。
现在坚持使用第二个或第三个版本。
关于java - 在 Java 中将 vector 作为参数发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40621217/