String... args 是jdk1.5之后的新特性,称之为可变参数。之前我们定义可变参数是采用String[] args的方法来声明,但是String... args在应用上更加灵活和简便
例如- class StringDemo0
- {
- public static void callMe1(String[] args)
- {
- System.out.println(args.getClass() == String[].class);
- for(String s : args)
- {
- System.out.println(s);
- }
- }
-
- public static void callMe2(String... args)
- {
- System.out.println(args.getClass() == String[].class);
- for(String s : args)
- {
- System.out.println(s);
- }
- }
- public static void main(String[] args)
- {
- callMe1(new String[] {"a", "b", "c"});
- callMe2("a", "b", "c");
- }
- }
复制代码 在这组代码中我们可以这样调用
callMe1(new String[] {"a", "b", "c"});
callMe2(new String[] {"a", "b", "c"});
以及这样调用
callMe1(new String[] {"a", "b", "c"});
callMe2("a", "b", "c");
但是不能进行这样调用
callMe1("a", "b", "c");
这就是String... args定义方法的灵活之处。并且当一个方法定义中有String... args形参时,实参传递的参数个数可以是少于最大个数的任意个,可以不传参数。
|