可变参数通过类型后加...声明,如int...,允许传入0个或多个该类型值,方法内按数组处理;必须位于参数列表末尾,且一个方法只能有一个。

在Java中,可变参数方法(varargs)允许一个方法接收不定数量的参数,简化了传参操作。当你不确定要传递多少个参数时,使用可变参数可以让代码更灵活、易读。
什么是可变参数
可变参数通过在参数类型后加三个点 ... 来声明。例如:
public void printNumbers(int... numbers) { }这表示该方法可以接收0个或多个int类型的值。调用时可以传入任意数量的int参数,如:
printNumbers(); // 0个参数printNumbers(1); // 1个参数
printNumbers(1, 2, 3); // 3个参数
在方法内部,numbers 被当作一个数组处理,可以用普通数组的方式遍历它。
立即学习“Java免费学习笔记(深入)”;
可变参数的使用规则
使用可变参数需要注意以下几点:
- 一个方法只能有一个可变参数,并且必须放在参数列表的最后
- 可变参数本质是数组,所以可以传入对应类型的数组
- 即使不传参数,方法也能正常执行,此时可变参数为空数组,不是null
例如下面的写法是合法的:
for (String msg : messages) {
System.out.println(prefix + ": " + msg);
}
}
但下面这种写法会报错,因为可变参数不在末尾:
// 编译错误!public void wrongMethod(String... strings, int count) { }
实际应用场景
可变参数常用于需要处理多个同类输入的场景:
- 数学计算:求多个数的最大值、总和等
- 日志输出:记录多个信息片段
- 工具方法:如字符串拼接、集合构建等
比如实现一个求和方法:
public int sum(int... values) {int total = 0;
for (int v : values) {
total += v;
}
return total;
}
调用 sum(1, 2, 3, 4) 返回10,非常直观。
基本上就这些。掌握可变参数的关键是理解它背后的数组机制,同时注意语法限制。用得好能让API更简洁。










