可变参数列表能够应用于参数个数或类型未知的场合。因为全部的类都直接或间接继承于Object类,
因此能够建立以Object数组为参数的方法。java
实例1:数组
public class Array7 { static void f(int required, String... trailing) { System.out.println("required: " + required + " "); for (String s : trailing) System.out.print(s + " "); System.out.println(); } public static void main(String[] args) { f(1, "one"); f(2, "two", "three"); f(0); } }
能够看到咱们传入几个String类型的参数均可以,甚至0个也能够
若是想传入任意类型的 就用 Object... 做为可变参数ui
实例2:spa
public class Array9 { static void f(Character... args) { System.out.println(args.getClass()); System.out.println(" length " + args.length); } static void g(int... args) { System.out.println(args.getClass()); System.out.println(" length " + args.length); } public static void main(String[] args) { f('a'); f(); g(1, 2); g(); System.out.println("int[]: " + new int[0].getClass()); } }
这段代码输出的是
class [Ljava.lang.Character;
length 1
class [Ljava.lang.Character;
length 0
class [I
length 2
class [I
length 0
int[]: class [I
其中getclass() 方法是属于Object类的一部分,它将产生对象的类,“I”表示基本类型int。
在最后一行打印了int[]数组的类型,也是“I”,这样就验证了可变参数列表不依赖于自动包装机制,而实际上使用的是基本类型。code
因此当参数不固定的状况下,请记得使用可变参数列表。对象