Java中可变长参数的使用

  在JDK1.5之后,提供了变长参数,也就是在方法定义中可以使用个数不确定的参数,对于同一方法可以使用不同个数的参数调用,例如:print("hello");

print("hello","lisi");print("hello","张三", "alexia")等。

下面介绍如何定义可变长参数 以及如何使用可变长参数。

1.可变长参数的定义

使用...表示可变长参数,例如

print(String... args){
   ...
}

在具有可变长参数的方法中,可以用增强式for循环来取得每个参数。

int sumNumber(int... numbers){
        int sum= 0;
        for(int number:numbers){
            sum+=number;
        }
        return sum;
    }

2.可变长参数的调用

 调用的时候可以给出任意多个参数也可不给参数,例如:

print();

print("hello");

print("hello","lisi");

print("hello","张三", "alexia")

3. 可变长参数的使用规则

  • 在调用方法的时候,如果能够和固定参数的方法匹配,也能够与可变长参数的方法匹配,则选择固定参数的方法。
  • public class MyLearning {
        public static void main(String[] args){
           int[] numbers = {3,9,0,1,6};
            System.out.println(sumNumber(9));
            System.out.println(sumNumber(1,3,9,0,5));
    
    
        }
        static int sumNumber(int... numbers){
            int sum= 0;
            for(int number:numbers){
                sum+=number;
            }
            return sum;
        }
    
        static int sumNumber(int number){
            return 1;
        }
    }

    输出结果为:

         1

        18

  •  一个方法的可变长参数只能有一个,且必须是该方法的最后一个参数。以下两段代码都无法通过编译
public void test(String... strings,ArrayList list){
  
 }
 
 public void test(String... strings,ArrayList... list){
  
 }

4. 可变长参数的使用规范

  • 避免带有可变长参数的方法重载:如3中第一个例子,编译器虽然知道怎么调用,但可读性较差。
posted @ 2017-11-29 11:17  NovemberZ  阅读(761)  评论(0)    收藏  举报