Java之可变参数(动态参数)详解(String...params)
例题:
计算2个数的和、3个数的和、4个数的和...N个数的和
如果使用传统方法我们发现是枯燥且繁琐的
public class VariableParameters { //传统方法 public void sum1(int n1,int n2){//计算2个数的和 int n = n1+n2; } public void sum2(int n1,int n2,int n3){//计算3个数的和 int n = n1+n2+n3; } public void sum3(int n1,int n2,int n3,int n4){//计算4个数的和 int n = n1+n2+n3+n4; } }
接下来我们使用动态参数的方法
public class VariableParameters { public int sum(int...sums){//此时形参列表里传入的变为数组 int rst = 0; if(sums.length>0){//判断是否有参数传入 rst=sums[0]; for (int i = 1; i < sums.length; i++) {//遍历求和 rst+=sums[i]; } } return rst; } } //测试上述代码 public static void main(String[] args) { VariableParameters vp = new VariableParameters(); System.out.println("和为"+vp.sum(1,2,3)); System.out.println("和为"+vp.sum(1,2,8)); }
int...sums(sums为自定义)即为可变参数/动态参数
details:
- 可变(动态)参数的实参为0-N个,可以为0(这也是为何上图代码先判断sums.length>0);
- 可变(动态)参数的本质就是数组;
- 可变(动态)参数的实参可以为数组; public class VariableParameters { public void T(int...t1){ System.out.println(t1.length); //输出数组长度,确认是否传入数组,如果数组可传入,长度应为3 } public static void main(String[] args) {//传入数组n VariableParameters vp = new VariableParameters(); int[] n = new int[3]; n[0]=1; n[1]=2; n[2]=3; vp.T(n); }
- 可变(动态)参数可以和普通参数放一起,但可变参数必须放最后; pubilc void N(double d,String...params){ }
- 一个参数列表只能出现一个可变(动态)参数。
下一篇:
mybatis支持分库分表分页