关于可变参数要放参数列表最后的猜想

来源:互联网 发布:淘宝手机店怎么开 编辑:程序博客网 时间:2024/06/06 15:50

可变参数必须位于形参中的最后,一个函数只能有一个可变参数.

假设没有对可变参数的位置进行规定,那么一个函数可以有两个同类型的可变参数,例如下面的先乘法后加法函数:

public static void add(int... a,int...b){        int result1=1;        for(int item:a){            result1*=item;          }        int result2=1;        for(int item:b){            result2*=item;          }        System.out.println(result1+result2);

add(1,2,3,4,5,6);

    调用add函数,并且传入了6个相同类型的参数,这个时候jvm没有办法准确分析出这些数据分别是属于哪个可变参数的    根据函数会有7种结果:    0+1*2*3*4*5*6=720,    1*2+3*4*5*6=362,    ...     这不是我们所希望的,为了避免出现这种问题,规定了可变参数必须位于参数列表的最后(这样的规定使得一个函数也只能有一个可变参数),这样jvm就可以准确的判断哪些数据是固定参数,哪些是可变参数了.
0 0
原创粉丝点击