虽然从1.5中提供了Varargs(variable arguments)机制,允许直接定义能和多个实参相匹配的形参。从而,可以用一种更简单的方式,来传递个数可变的实参。但在平时编程过程中很少使用可变参数作为方法的参数,下面通过一个例子说明一下。
可变参数方法的定义
public int add(int... numbers){
int sum = 0;
for(int num : numbers){
sum += num;
}
return sum;
}
但需要注意的是可变参数只能作为函数的最后一个参数,但其前面可以有也可以没有任何其他参数。
可变参数方法的调用
add(); // 不传参数
add(1); // 传递一个参数
add(2,1); // 传递多个参数
add(new Integer[] {1, 3, 2}); // 传递数组
另外《阿里巴巴Java开发手册》中OOP 规约的第3条中了给出了一些使用建议:
“【强制】相同参数类型,相同业务含义,才可以使用 Java 的可变参数,避免使用 Object。 说明:可变参数必须放置在参数列表的最后。(提倡同学们尽量不用可变参数编程)
正例:public User getUsers(String type, Integer... ids) {...}”
网友评论