首页 > 代码库 > Java中的可变参数

Java中的可变参数

Java在1.5之后允许方法使用可变参数,可变参数的好处在于:它允许传递0个或者多个参数。比如原来有一段代码下载如下: 

Java代码  技术分享

  1. public class Test {    

  2.     public static void main(String[] args) {    

  3.         test();    

  4.         test(new String[]{"a"});    

  5.         test(new String[]{"a""b"});    

  6.     }    

  7.     

  8.     private static void test() {    

  9.         System.out.println(“[]”);    

  10.     }    

  11.     

  12.     private static void test(String[] args) {    

  13.         System.out.println(Arrays.toString(args));    

  14.     }    

  15. }    


使用可变参数之后的代码下载如下: 

Java代码  技术分享

  1. public class Test {    

  2.     public static void main(String[] args) {    

  3.         test();    

  4.         test(new String[]{"a"});    

  5.         test(new String[]{"a""b"});    

  6.     }    

  7.     

  8.     private static void test(String... args) {    

  9.         System.out.println(Arrays.toString(args));    

  10.     }    

  11. }    


可见,可变参数的功能更加强大,语意包含的范围更广。 
我们知道,在Java中,除了8种基本类型之外一切都是类。那么可变参数到底是个什么类呢?来,用代码下载验证下! 

Java代码  技术分享

  1. public class Test {    

  2.     public static void main(String[] args) {    

  3.         whatClass();    

  4.         whatClass1();    

  5.     }    

  6.     

  7.     private static void whatClass(String... args) {    

  8.         System.out.println(args.getClass());    

  9.         System.out.println(new String[]{}.getClass());    

  10.     }    

  11.     

  12.     private static void whatClass1(int... args) {    

  13.         System.out.println(args.getClass());    

  14.         System.out.println(new int[]{}.getClass());    

  15.     }    

  16. }    


上面代码的运行结果是: 
class [Ljava.lang.String;  
class [Ljava.lang.String;  
class [I  
class [I 


Java中的可变参数