Java可变参数

简介

从JDK1.5版本开始,Java支持传递同类型的可变参数给一个方法

  • 在方法声明中,在指定参数类型后加一个省略号(...)。

  • 一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数都必须在它前面声明。

代码

public static void printMax(double... numbers){
    if(numbers.length == 0){
        System.out.println("No argument passed");
        return;
    }
    
    double result = numbers[0];
    
    //排序!
    for(int i = 1; i < numbers.length; i++){
        if(numbers[i] > result){
            result = numbers[i];
        }
    }
    System.out.println("The max value is " + result);
}

由于数字签名相同,所以冲突而报错

与数组的区别

利用数组定义的方法,该方法就必须传入对应类型的数组而使用可变参数后,可以不传入、或者传入多个参数,或者直接传入数组。

举例

定义方法

public static void test(int... args){}

函数调用

public static void main(String []args){
	test();//调用test静态方法
    test(1,3,5);
    int []array = {1,3,5,45};
    test(array);
}

注意事项

  1. 一个方法中只能有一个可变参数,并且该可变参数必须放在参数列表的末尾,因为不这样限制可能会导致函数调用的不确定性
  2. 当调用函数时,出现既可以与固定参数列表的函数和可变参数函数匹配时,会选择调用固定参数列表的函数。
  3. 一个类中可以定义多个含有可变参数的方法,但是调用函数时可能会出现与多个可变参数函数匹配,这种情况直接调用失败

文章结束

遇见狂胜说bilibili

posted @ 2021-03-12 17:10  SHE_HYH  阅读(194)  评论(0)    收藏  举报