📅  最后修改于: 2020-10-13 05:29:03             🧑  作者: Mango
varrags允许该方法接受零个或多个参数。在使用varargs之前,我们要么使用重载方法,要么使用数组作为方法参数,但由于它会导致维护问题,因此被认为是不好的。如果我们不知道必须在方法中传递多少个参数,则使用varargs是更好的方法。
我们不必提供重载的方法,因此代码更少。
可变参数使用省略号,即数据类型后的三个点。语法如下:
return_type method_name(data_type... variableName){}
class VarargsExample1{
static void display(String... values){
System.out.println("display method invoked ");
}
public static void main(String args[]){
display();//zero argument
display("my","name","is","varargs");//four arguments
}
}
Output:display method invoked
display method invoked
class VarargsExample2{
static void display(String... values){
System.out.println("display method invoked ");
for(String s:values){
System.out.println(s);
}
}
public static void main(String args[]){
display();//zero argument
display("hello");//one argument
display("my","name","is","varargs");//four arguments
}
}
Output:display method invoked
display method invoked
hello
display method invoked
my
name
is
varargs
使用varargs时,必须遵循一些规则,否则程序代码将无法编译。规则如下:
void method(String... a, int... b){}//Compile time error
void method(int... a, String b){}//Compile time error
class VarargsExample3{
static void display(int num, String... values){
System.out.println("number is "+num);
for(String s:values){
System.out.println(s);
}
}
public static void main(String args[]){
display(500,"hello");//one argument
display(1000,"my","name","is","varargs");//four arguments
}
}
Output:number is 500
hello
number is 1000
my
name
is
varargs