Java中的可变参数或者varargs方法

时间:2020-02-23 14:35:39  来源:igfitidea点击:

Java变量参数是在Java 5中引入的,它允许使用我们想要的数量的参数。

语法:

我们使用三个点(...)也称为省略号来定义变量参数。

public  void method (String a,int ... b)
 {
  
 }

使用varargs方法时需要在某些点钟内记住这一点:

  • 我们可以在一个方法中只有一个变量参数(省略号)
  • varargs应该是该方法的最后一个参数,否则方法无法编译。

为什么要使用变量参数或者varargs方法:

有两个替代方案可以使用在Java 1.5之前使用的开发人员

  • 方法重载
  • 将阵列传递给方法

方法重载可能不是好主意,因为我们不知道我们需要重载(overloading)的方法数量。
我们可以在数组中传递参数,但我们不能直接使用Varargs方法,让编译器为我们创建数组。

varargs如何在内部工作。

在调用varargs方法时,编译器与左右匹配的参数,一旦匹配了固定数量的参数,余下的所有参数都被创建为数组并传递给方法。

例如:

让我们说你有以下方法签名:

public  void method (String a,int b,int ... c)
 {
  
 }

你调用这种方法

method("test",1,2,3,4)

然后,"测试"和1将通过正常参数,2,3和4将作为阵列传递。

Java变量参数或者varargs示例:

package org.igi.theitroad;
 
public class VarArgsMainJava {
 
 public static void main(String[] args) {
 
  method("test",1,2,3,4,5);
  anotherMethod(10,20,30,40,50);
 }
 
 public  static void method (String a,int b,int ... c)
 {
  System.out.println("Method arguments are");
  System.out.print(a);
  System.out.print(" "+b);
  for (int i = 0; i < c.length; i++) {
   System.out.print(" "+c[i]);
  }
  System.out.println();
 }
 
 public  static void anotherMethod (int b,int ... c)
 {
  System.out.println("Method arguments are");
  System.out.print(b);
  for (int i = 0; i < c.length; i++) {
   System.out.print(" "+c[i]);
  }
 }
 
}

运行上面的程序时,我们将得到以下输出:

Method arguments are
test 1 2 3 4 5
Method arguments are
10 20 30 40 50