java 中…是Java语言对方法参数支持一种新写法,叫可变长度参数列表,其语法就是类型后跟…,表示此处接受的参数为0到多个Object类型的对象,或者是一个Object[]。
上测试代码
public class Jctest2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//测试可变长度的参数列表与数组传参有什么不同........
myTest("aaa","bbb","ccc","ddd");
//打印结果 aaa bbb ccc ddd
String[] arr = new String[]{"111","222","333"} ;
myTest(arr);
//打印结果 111 222 333
}
public static void myTest(String... strs){
for(String str : strs){
System.out.println(str);
}
}
}
个人感觉...其实就是将参数封装成一个数组进行传递,实际上和参数传递某一类型数组效果类似,当然数组传递是不可能支持myTest("aaa","bbb","ccc","ddd"); 这种格式的。
还有一个测试:
public class Jctest2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//测试可变长度的参数列表与数组传参有什么不同........
myTest("aaa","bbb","ccc","ddd");
}
public static void myTest(String str1 ,String... strs){
for(String str : strs){
System.out.println(str);
}
System.out.println(str1);
}
//结果为 bbb ccc ddd aaa
}
这里可变长度的参数列表不会读第一个参数,第一个参数赋值给str1 ,剩下参数被放到单数列表中去了。
当然还有一种情况public static void myTest(String... strs,String str2){}
这样会报错,也就是说 可变长度参数列表必须作为最后一位参数。