java 可变参数

发布于:2022-12-31 ⋅ 阅读:(499) ⋅ 点赞:(0)

或许有些时候 我们也不知道一个方法到底需要几个参数
如果是前端自然很好处理 因为前端直接就是方法同名就行 参数没关系
但后端方法 因为重载机制的存在 参数不一样会出问题的

但也可以写的灵活一点
我们来看一段代码

public class text {
    public static void main(String args[])  {
        calculation(22,33,44);
        calculation(1,2,3,4,5,6,7,8);
    }
    public static void calculation(int...intlist){
        System.out.println("------------------");
        if(intlist.length > 0) {
            for(int i = 0;i < intlist.length;i++) {
                System.out.println(intlist[i]);
            }
        }
    }
}

我们定义了一个 calculation 函数 他的参数就是可变的
我们声明 int…intlist 此时 intlist就接受了所有的参数 这里就不再限制参数的数量
输出结果如下
在这里插入图片描述
可以看到 我们这样 第一个传了三个参数 第二个传了八个 都被intlist以数组的形式完美接受了

我们还可以做个求和的操作
参考代码如下

public static void main(String args[])  {
    calculation(22,33,44);
    calculation(1,2,3,4,5,6,7,8);
}
public static void calculation(int...intlist){
    int avg = 0;
    if(intlist.length > 0) {
        for(int i = 0;i < intlist.length;i++) {
            avg = avg+intlist[i];
        }
    }
    System.out.println(avg);
}

但相对的 每个方法都只能有一个可变参数 且必须在方法的最后面
在这里插入图片描述
在这里插入图片描述
参考代码如下

public static void main(String args[])  {
    calculation("实例1",22,33,44);
    calculation("实例2",1,2,3,4,5,6,7,8);
}
public static void calculation(String nameList,int...intlist){
    int avg = 0;
    if(intlist.length > 0) {
        for(int i = 0;i < intlist.length;i++) {
            avg = avg+intlist[i];
        }
    }
    System.out.println(nameList+avg);
}

输出结果如下
在这里插入图片描述

本文含有隐藏内容,请 开通VIP 后查看