总结下:
1:最多只能有一个而且是最后一个
public Student(int id,String ... features){
}
2:
能匹配定长的方法,那么优先匹配该方法。含有不定参数的那个重载方法是最后被选中的。
3:
可变参数是兼容数组类参数的,但是数组类参数却无法兼容可变参数。其实对于第二段代码而言,编译器并不知道什么可变不可变,在它看来,需要定义一个dealArray(int, int, int)类的方法。所以,自然就无法去匹配数组类参数的dealArray方法了。
即:数组类型的参数都可以换成可变参数,实际上,java内部处理可变参数也是这么处理的 换成数组
public class TestVarArgus {
public static void dealArray(int... intArray){
for (int i : intArray)
System.out.print(i +" ");
System.out.println();
}
public static void main(String args[]){
dealArray();
dealArray(1);
dealArray(1, 2, 3);
}
}
成功,注意:可变参数可以兼容数组,数组却不能兼容可变参数,也就是这段代码的int...intArray换成int[] intArray不行