Java在1.5之後允許方法使用可變參數,可變參數的好處在於:它允許傳遞0個或者多個參數。比如原來有一段代碼下載如下:
public class Test {
public static void main(String[] args) {
test();
test(new String[]{"a"});
test(new String[]{"a", "b"});
}
private static void test() {
System.out.println(“[]”);
}
private static void test(String[] args) {
System.out.println(Arrays.toString(args));
}
}
使用可變參數之後的代碼下載如下:
public class Test {
public static void main(String[] args) {
test();
test(new String[]{"a"});
test(new String[]{"a", "b"});
}
private static void test(String... args) {
System.out.println(Arrays.toString(args));
}
}
可見,可變參數的功能更加強大,語意包含的範圍更廣。
我們知道,在Java中,除了8種基本類型之外一切都是類。那麼可變參數到底是個什麼類呢?來,用代碼下載驗證下!
public class Test {
public static void main(String[] args) {
whatClass();
whatClass1();
}
private static void whatClass(String... args) {
System.out.println(args.getClass());
System.out.println(new String[]{}.getClass());
}
private static void whatClass1(int... args) {
System.out.println(args.getClass());
System.out.println(new int[]{}.getClass());
}
}
上面代碼的運行結果是:
class [Ljava.lang.String;
class [Ljava.lang.String;
class [I
class [I