可变参数列表

可变参数列表能够应用于参数个数或类型未知的场合。因为全部的类都直接或间接继承于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

因此当参数不固定的状况下,请记得使用可变参数列表。对象

相关文章
相关标签/搜索