JavaSE拓展:可变参数
发布时间:2026/10/8 18:48:38 锦皓数字建站

一、什么是可变参数可变参数Varargs方法的形参个数不固定可以传 0 个、1 个或者多个同类型的参数。 底层原理可变参数本质就是一个数组编译器在编译阶段自动把传入的多个参数封装成数组。应用场景方法不确定接收多少个相同类型参数时使用。 语法格式修饰符 返回值类型 方法名(数据类型... 变量名){}重点符号...三个点必须写在数据类型和参数名中间二、基础语法 简单示例public class VarDemo { // 可变参数可以传入任意多个int public static void show(int... nums){ // nums本质就是数组可以用数组所有操作 for (int num : nums) { System.out.println(num); } } public static void main(String[] args) { show(); // 不传参数 → 空数组 show(10); // 传1个 show(10,20); // 传2个 show(10,20,30); // 传多个 } }三、可变参数的使用规则【面试重点】一个方法最多只能有一个可变参数// ❌报错不能写两个可变参数 public static void test(int... a, String... b){}可变参数必须放在所有形参的最后面public static void test(String name, int... nums){} // ✅正确 public static void test(int... nums, String name){} // ❌编译报错可变参数必须放末尾可变参数可以接收数组也可以接收零散的多个参数public static void show(int... nums){} public static void main(String[] args) { int[] arr {1,2,3}; show(arr); // 直接传数组允许 show(1,2,3); // 传多个零散数字允许 }调用时可以不传可变参数的值此时可变参数是长度为 0 的空数组不是 null⚠️注意如果手动传入 null那可变参数就是 null遍历会空指针show(null); // nums null增强for循环会NPE四、实际开发常用场景场景 1工具类求和public static int getSum(int... nums){ int sum 0; for (int num : nums) { sum num; } return sum; } //调用 getSum(1,2) getSum(1,2,3,4)场景 2集合工具类Arrays.asList(T... a)ListString list Arrays.asList(A,B,C); // asList 底层就是可变参数可以一次性传入多个元素五、常见易错点汇总...不能写在变量名后面int nums...❌必须int... nums✅可变参数只能放在形参列表最后一个方法只能有 1 个可变参数可变参数本质数组但直接传 null 会空指针重载时固定参数方法优先级高于可变参数
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。