java5的新特性之方法的可变参数,说的是参数的个数可变
示例代码如下
- public class VarArgsDemo {
- public static void main(String[] args) {
- double sum = getSum(10.0, 34, 13, 54.0);
- System.out.println(sum);
- }
- static double getSum(double... arr) {
- double sum = 0;
- for (double d : arr) {
- sum += d;
- }
- return sum;
- }
- }
通过反编译软件打开,编译后的代码如下
- import java.io.PrintStream;
- public class VarArgsDemo
- {
- public VarArgsDemo()
- {
- }
- public static void main(String args[])
- {
- double sum = getSum(new double[] {
- 10D, 34D, 13D, 54D
- });
- System.out.println(sum);
- }
- static transient double getSum(double arr[])
- {
- double sum = 0.0D;
- double ad[];
- int j = (ad = arr).length;
- for (int i = 0; i < j; i++)
- {
- double d = ad[i];
- sum += d;
- }
- return sum;
- }
- }
方法的可变参数其底层就是一个数组类型
可变参数必须作为方法的最后一个参数,避免参数的歧义性
推论:方法最多只有一个可变参数