什么是Java中的可变参数?

定义方法时,通常,我们将其接受的参数以及类型指定为-

myMethod(int a, String b){
}

假设如果您需要接受多个相同类型的变量,则需要一个接一个地将变量指定为-

myMethod(int a, int b, int c){
}

您还可以将可变数量的特定类型的参数传递给方法。这些称为变量参数或varargs。它们由三个点(…)表示

语法

public myMethod(int ... a) {
   //方法主体
}

一旦在调用时将变量参数用作参数方法,就可以将尽可能多的参数传递给该方法(变量数量可变),或者,您可以简单地调用此方法而无需传递任何参数。

示例

public class Sample{
   void demomethod(String... args) {
      for (String arg : args) {
         System.out.println(arg);
      }
   }
   public static void main(String args[] ){
      new Sample().demomethod("Ram", "Rahim", "Robert");
      new Sample().demomethod("Krishna", "Kasyap");
      new Sample().demomethod();
   }
}

输出结果

Ram
Rahim
Robert
Krishna
Kasyap

示例

public class VarargsExample{
   void demoMethod(String name, int age, int... marks) {
      System.out.println();
      System.out.println("Name: "+name);
      System.out.println("Age: "+age);
      System.out.print("Marks: ");
      for (int m: marks) {
         System.out.print(m+" ");
      }
   }
   public static void main(String args[] ){
      VarargsExample obj = new VarargsExample();
      obj.demoMethod("Krishna", 23, 90, 95, 80, 69 );
      obj.demoMethod("Vishnu", 22, 91, 75, 94 );
      obj.demoMethod("Kasyap", 25, 85, 82);
      obj.demoMethod("Vani", 25, 93);
   }
}

输出结果

Name: Krishna
Age: 23
Marks: 90 95 80 69
Name: Vishnu
Age: 22
Marks: 91 75 94
Name: Kasyap
Age: 25
Marks: 85 82
Name: Vani
Age: 25
Marks: 93

在Java中使用varargs时要遵循的规则-

  • 每个方法只能有一个变量参数。如果您尝试使用多个变量参数,则会生成编译时错误。

  • 在方法的参数列表中,varargs必须是最后一个。否则,将生成编译时错误。