liveInPresent

导航

 

JDK 1.5后,新加入String ... args 写法,使得传入参数更加灵活方便 ,例子如下


 

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);  
	}  
}

 

他们可以这样子被调用:

callMe1(new String[] {"a", "b", "c"});  
callMe2("a", "b", "c");  
callMe2(new String[] {"a", "b", "c"});


但是不能 

callMe1("a", "b", "c");

 

这就是String... args定义方法的灵活之处。并且当一个方法定义中有String... args形参时,实参传递的参数个数可以是少于最大个数的任意个,可以不传 参数。

但是这样子定义在方便的同时也是要付出一定的代价的,那就是String...args只能定义在形参的最后一个参数,而String[] args就没有这样的限制了。

不过要声明的是:这种方法并不是官方推荐的方法,要尽量少用为妙,不然容易出现问题。


 

posted on 2019-10-06 14:22  liveInPresent  阅读(419)  评论(0)    收藏  举报