可變參數列表

可變參數列表能夠應用於參數個數或類型未知的場合。因爲全部的類都直接或間接繼承於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

因此當參數不固定的狀況下,請記得使用可變參數列表。對象

相關文章
相關標籤/搜索