JDK1.5之后引入。
【修饰符】 返回值类型 方法名(数据类型... 可变参数){ } 【修饰符】 返回值类型 方法名(【其他非可变参数列表,】 数据类型... 可变参数){ }
可变参数必须是最后一个
2、可变参数的使用
(1)在声明它的方法中,我们可以当作数组使用
(2)在调用它的时候,
A:非可变参数部分,实参列表与形参列表个数、类型、顺序一一对应
B:可变参数部分,可以传入0~n个实参或可以传入一个对应类型的数组
3、声明为可变参数与声明为数组的区别?
(1)声明为可变参数,更灵活,你可以传0~n个实参,也可以传入数组,
声明为数组类型,那么调用时只能传入数组对象。
(2)如果同一个类中,出现了两个方法名称相同,形参列表其他非可变参数部分相同,可变参数部分,一个方法是数组,一个方法是可变参数,那么编译器会认为它们不是重载。
int sum(int[] arr){ .... } int sum(int... arr){ ... }
(3)如果同一个类中,出现了两个方法名称相同,都包含可变参数部分,可能会导致调用时报引用不明确
int sum(int a, int... arr){ //... } int sum(int... arr){ //... }