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