可變參數列表能夠應用於參數個數或類型未知的場合。因爲全部的類都直接或間接繼承於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
因此當參數不固定的狀況下,請記得使用可變參數列表。對象