Java可变参数类型

42 阅读1分钟

一、可变参数定义使用:

JDK1.5之后,方法参数可以定义为可变参数类型[可变参数的参数数量可变,参数类型是相同的]。 可变参数是0、1、2、3、....n个参数的数组,传递的参数数量可以是0-n个。

修饰符 返回值类型 方法名(参数类型... 形参名){

}


public void varargFun(String name, int... height){
}

等价于下面这种形式:

修饰符 返回值类型 方法名(参数类型[] 形参名){

}

区别就是后面这种定义,在调用时必须传递数组,而前者可以直接传递数据。

import java.util.Arrays; 

public class VarArgClass {   

    public static void main(String[] args) {        
        method(1, 2, 3, 4, 5);    
    }     
    
    public static int method(int... arr) {        
        System.out.println("可变参数:" + Arrays.toString(arr)); 
        System.out.println("可变参数长度,即数组元素个数:" + arr.length);  
        
        return 0;    
   }
}

二、可变参数的原理:

底层实现是一个数组,根据传递参数个数不同,会创建不同长度的数组,来储存这些参数。

三、可变参数的规则:

一个方法的参数列表只能有一个可变参数;如果方法参数有多个,那么可变参数必须写在参数列表的末尾。