📜  Java4/5 可变参数(变量):

📅  最后修改于: 2020-10-13 05:29:03             🧑  作者: Mango

可变参数(变量):

varrags允许该方法接受零个或多个参数。在使用varargs之前,我们要么使用重载方法,要么使用数组作为方法参数,但由于它会导致维护问题,因此被认为是不好的。如果我们不知道必须在方法中传递多少个参数,则使用varargs是更好的方法。

Varargs的优势:

我们不必提供重载的方法,因此代码更少。

varargs的语法:

可变参数使用省略号,即数据类型后的三个点。语法如下:

return_type method_name(data_type... variableName){}

Java中的Varargs的简单示例:

  
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

Java中的另一个Varargs程序:

  
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时,必须遵循一些规则,否则程序代码将无法编译。规则如下:

  • 该方法中只能有一个变量参数。
  • 变量参数(varargs)必须是最后一个参数。

无法编译的varargs的示例:

  
void method(String... a, int... b){}//Compile time error

void method(int... a, String b){}//Compile time error
    

作为方法中最后一个参数的Varargs示例:

  
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