Java中关于可变长参数的那些事

 可变长参数: 底层就是一个数组,只能出现在方法的形参里,不能定义


1)可变长参数的方法只有在必须的时候才会调用,如果有确切匹配的不可变

参数的方法,会优先选择不可变参数的方法;

2)如果两个方法都是可变长参数,都能匹配时,会编译通不过;编译器不知道调用哪个;

3)一个方法只能有一个可变长参数,并且这个可变长参数必须是该方法的最后一个参数;

例子:

main 方法就是将若干个字符串封装成数组

String[] 与 String... 是一样的;不能重载;

依次拿到每个值,包装成数组,然后再用到方法里;
m1(String[] str)
m2(String... str)

差别:但是如果写的是String[] 时,传参数时不能一起传多个;m1(str1,str2)

可以这样传:m1(new String[]{str1,str2});

而String... 则可以传多个参数;m2(str1,str2)

也可以这样传:m2(new String[]{str1,str2});

你可能感兴趣的:(core,java)