java 可变参数

Java可变参数

Java中可以允许将同功能, 同名称的参数个数不同的方法合并为一个方法, 就是可变参数方法.
可变参数大大提高了代码的复用性, 通过灵活运用可变参数,我们可以让代码更加简洁、高效,减少冗余。个人感觉这个性质很有趣

简单示例

public class Main {
    public static void main(String[] args) {
        VarParameter varParameter = new VarParameter();
        System.out.println(varParameter.getSum(1, 2, 3));
    }
}

class VarParameter {
    public int getSum(int... numbers) {
        System.out.println("参数个数为: " + numbers.length);
        int res = 0;
        for (int i = 0; i < numbers.length; i++) {
            res += numbers[i];
        }
        return res;
    }
}

可以发现, 传入的number可以被当作数组使用

一些特点:

  1. 可变参数的实参可以为0个或者任意多个
  2. 可变参数的实参可以是一个数组
  3. 可变参数可以和普通参数一起放在形参列表, 但是必须保证可变参数在最后, 且一个形参列表只能出现一个可变参数
public int getSum(String str, int... numbers) {
        System.out.println("参数个数为: " + numbers.length);
        int res = 0;
        for (int i = 0; i < numbers.length; i++) {
            res += numbers[i];
        }
        return res;
    }

本质

深入解析一下java编译器, 就可以发现, 其实java编译器会将可变参数转化为数组, 所以其实可以将其理解为

int getSum(int... numbers) {
}

=> 
int getSum(int[] numbers = new int[] {...}} {

} 

所以我们也可以知道如果我们传入一个数组也是可以编译通过的

public class Main {
    public static void main(String[] args) {
        VarParameter varParameter = new VarParameter();
        System.out.println(varParameter.getSum(1, 2, 3));
        
        int[] arr = new int[] {1, 2, 4};
        varParameter.getSum(arr);
    }
}

class VarParameter {
    public int getSum(int... number) {
        System.out.println("参数个数为: " + number.length);
        int res = 0;
        for (int i = 0; i < number.length; i++) {
            res += number[i];
        }
        return res;
    }
}
posted @   Xingon2356  阅读(29)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示