http://12477787.blog.51cto.com/12467787/1887843
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