java 可变参数

来源:互联网 发布:centos 编译安装git 编辑:程序博客网 时间:2024/06/06 20:30

java 可变参数 是指参数的个数不确定,但是参数的类型确定,java把可变参数当做数组处理。此外,可变参数必须位于最后一项,只支持有一个可变参数。

  1. 可变参数只能出现在参数列表的最后;

  2. … 位于变量类型和变量名之间,前后有无空格都可以;

  3. 调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中一数组的形式访问可变参数。

定义方法例子:
public void fun(int… arr) { }
方法fun()的参数类型为int…,其中“…”不是省略号,而是定义参数类型的方式。参数arr就是可变参数类型。你可以把上面代码理解为:public void fun(int[] arr),但要注意,只有在方法的形参中可以使用int…来代替int[]。

public int sum1(int[] arr) {    int sum = 0;    for(int i = 0; i < arr.length; i++) {      sum += arr[i];    }    return sum;  }public int sum2(int... arr) {    int sum = 0;    for(int i = 0; i < arr.length; i++) {      sum += arr[i];    }    return sum;  }

如何调用包含可变形参的方法:
sum1()和sum2()两个方法的调用:

sum1(new int[]{1,2,3});sum2(new int[]{1,2,3});

但是对于sum2还有另一种调用方式:

sum2();sum2(1);sum2(1,2);sum2(1,2,3);

等同于:

sum2(new int[0]);sum2(new int[] {1});sum2(new int[] {1, 2});sum2(new int[] {1, 2, 3});

这看起来好像是使用任意多个参数来调用sum2()方法,这就是调用带有可变参数方法的好处了。

原文链接 http://www.jb51.net/article/93949.htm

原创粉丝点击