已知这样的调用关系,方法应该如何写
//test方法名
test("log message 1 ");
test("log message2", " log message3");
test("log message4","log message5","log message6");
首先这是jdk1.5之后的新特性,我们叫它为可变参数 String …args 是一个不定长参数。
String args[] 是一个数组作为参数。
String[] args 和 String… args 本质上不没有什么区别,String… args 最后还是转化成String[] args 来做的
- 当一个方法定义中有String… args形参时,实参传递的参数个数可以是少于最大个数的任意个,可以不传 参数。但是这样子定义在方便的同时也是有其他影响的,那就是String…args只能定义在形参的最后一个参数,而String[] args就没有这样的限制了,所以看各种的需求定义。
- 如下体现了两种形式的不同
public static void test(String [] aaa){
}
public static void test2(String ... bbb){
}
public static void main(String[] args) {
test(new String[]{"log message 1 "});
test(new String[]{"log message2", " log message3"});
test(new String[]{"log message4","log message5","log message6"});
test2(new String[]{"log message 1 "});
test2("log message2", " log message3");
test2("log message4","log message5","log message6");
}