#大標=JDK 5.0 Tiger Varargs #副標=徹底剖析JDK 5.0 Varargs #作者=文/陳綮紳 ==================程式=========================== 程式1 public int getStringArrayLength(String arg[]) { return arg.length; } ==================程式=========================== ==================程式=========================== public int getStringArrayLength(java.lang.String[]); ==================程式=========================== ==================程式=========================== getStringArrayLength 方法的位元碼(bytecode): ==================程式=========================== ==================程式=========================== 1# arraylength = 取得陣列的長度。 ==================程式=========================== ================================================= 2# ireturn = 傳回int值。 ================================================= ================================================= 程式2 public int getStringArrayLength(String... arg) { return arg.length; } ================================================= ================================================= 程式3 public static int getLength(String... arg) { return arg.length; } public static void main(String[] arg) { System.out.println("getLength() ==>"+getLength()); System.out.println("getLength() ==>"+getLength ("one","two","thress")); } ================================================= ================================================= 程式4 public int getLength(String... arg) //#正確 { return arg.length; } public int getLength(Integer count,String... arg) //#正確 { return arg.length; } public int getLength(String... arg,Integer count) //#錯誤 { return arg.length; } ================================================= ================================================= 程式5 public int getLength(String... arg) //#正確 { return arg.length; } public int getLength(String... arg,Integer... count) //#錯誤 { return arg.length; } ================================================= ================================================= 程式6 public static void main(String... arg) { System.out.println("參數長度:"+arg.length); System.out.println("索引值[0] => "+arg[0]); } ================================================= ================================================= 程式7 public static void NonVarargs(String[] str) { for(String s : str) System.out.print(s + " "); System.out.println(); } public static void Varargs(String... str) { for(String s : str) System.out.print(s + " "); System.out.println(); } public static void main(String[] arg) { System.out.print("呼叫NonVarargs method:"); NonVarargs(new String[]{"one","two","three"}); //#1 System.out.print("呼叫Varargs method:"); Varargs("one","two","three"); //#2 } =================================================