Java的变参函数实现实际上参数是一个数组,其简单用法如下
public class Test { private static void variableParam(Object... args) { for (Object v : args) { System.out.print(v.toString() + " "); } System.out.println(); } private static void variableParam2(int a, int... args) { System.out.println("a: " + a); System.out.print("variable params num: " + args.length); } public static void main(String[] args) { variableParam(1, 2.0F, 3L, 'Z'); variableParam2('A', 2, 3, 4); } }
1 2.0 3 Z
a: 65
variable params num: 3
基于Java的根类是Object,我们可以将变参函数类型定义为Object,这样就可以支持所有不同类型的变长参数,而且Java变参提供自动包装功能,例如int->Integer, float->Float等等。
另外,我们可以将变参和非变参结合在一起使用,例如上例中的variableParam2(),另外变参函数的传值允许为空。