JDK1.5之可变参数

image.png

JDK1.5特性之可变参数:

如果说现在要设计一个方法,这个方法可以接收任意多个整型数据相加。
最初的解决方案:利用数组解决

public class TestDemo {
    public static void main(String[] args) {
        System.out.println(add(new int[]{1,2,3}));
        System.out.println(add(new int[]{4,5}));
    }
    /**
     * 
     * @param data 数组接收任意多个整型数据相加
     * @return
     */
    public static int add(int[] data){
        int sum=0;
        for (int i = 0; i < data.length; i++) {
            sum+=data[i];
        }
        return sum;
    }
}

结果:


image.png

但是实现并不标准,要求是可以接收任意多个整型数据,理想的调用方式:
add(1,2,3) add(10,20) add(10,10,10,20,20,30...)
这一功能从JDK1.5之后正式登陆到了Java之中,主要在方法上使用,定义形式为:访问修饰符 返回值类型 方法名(参数类型...参数名){}
可变参数支持数组形式以及,分割形式实参,实现还是按照数组实现

public class TestDemo {
    public static void main(String[] args) {
        //可变参数接收数组实参
        System.out.println(add(new int[]{1,2,3}));
        System.out.println(add(new int[]{4,5}));
        //可变参数接收,分割的实参
        System.out.println(add(1,2,3));
        System.out.println(add(4,5));
    }
    /**
     * 
     * @param data 数组接收任意多个整型数据相加
     * @return
     */
    public static int add(int...data){
        int sum=0;
        for (int i = 0; i < data.length; i++) {
            sum+=data[i];
        }
        return sum;
    }
}

结果:


image.png

大部分的开发情况要求参数个数明确,这种不确定参数个数的开发往往用于一些程序相关系统类的设计上。

总结:
1.在设计一个类的时候,可变参数并不是优先选择
2.可变参数就属于数组的变形应用

你可能感兴趣的:(JDK1.5之可变参数)