在 Java 中,符号 `...` 在原型声明的上下文中意味着什么:`type function_name (type... parameter_name)`
In Java, what does the notation `...` mean in the context of a prototype declaration: `type function_name (type... parameter_name)`
我正在学习 Java,并且在函数原型中我经常看到变体 type... parameter_name
的参数。 ...
表示法是什么意思?
新功能和增强功能
J2SE 5.0 说(部分)
Varargs
This facility eliminates the need for manually boxing up argument lists into an array when invoking methods that accept variable-length argument lists. Refer to JSR 201.
它也被称为variadic function。根据维基百科,
In computer programming, a variadic function is a function of indefinite arity, i.e., one which accepts a variable number of arguments.
那些叫做varargs。调用该方法时,您可以为该参数传入任意数量的参数(即使是 0,因此您可以忽略它),也可以传入一个数组。在方法内部,varags 参数被视为一个数组。
比如这个方法:
public void foo(String... strs) {}
可以通过以下任何方式调用:
foo();
foo("hello", "world");
String[] args = {"hello", "world"};
foo(args);
在方法中,您可以像这样访问参数:
String str1 = strs[0];
String str2 = strs[1];
需要注意的一件重要事情是可变参数 必须 是您方法中的最后一个参数(当您考虑传递的参数数量可以变化时,这是有道理的,所以你必须先解决其他参数)。
我正在学习 Java,并且在函数原型中我经常看到变体 type... parameter_name
的参数。 ...
表示法是什么意思?
新功能和增强功能 J2SE 5.0 说(部分)
Varargs
This facility eliminates the need for manually boxing up argument lists into an array when invoking methods that accept variable-length argument lists. Refer to JSR 201.
它也被称为variadic function。根据维基百科,
In computer programming, a variadic function is a function of indefinite arity, i.e., one which accepts a variable number of arguments.
那些叫做varargs。调用该方法时,您可以为该参数传入任意数量的参数(即使是 0,因此您可以忽略它),也可以传入一个数组。在方法内部,varags 参数被视为一个数组。
比如这个方法:
public void foo(String... strs) {}
可以通过以下任何方式调用:
foo();
foo("hello", "world");
String[] args = {"hello", "world"};
foo(args);
在方法中,您可以像这样访问参数:
String str1 = strs[0];
String str2 = strs[1];
需要注意的一件重要事情是可变参数 必须 是您方法中的最后一个参数(当您考虑传递的参数数量可以变化时,这是有道理的,所以你必须先解决其他参数)。