前情概要:在翻看spring基于配置文件部分的源码时,发现在ClassPathXmlApplicationContext中的setConfigLocations(configLocations)传入的参数是String[]configLocations数组,但是在setConfilgLocations方法中是用…接收的。
Java中3个点的含义是:不定参数个数,也就是动态的参数个数
举个例子
public class StringCopy {
public static void main(String[] args) {
String[]a={"hello", "world", "123", "china", "csdn", "com"};
ArrayList<String> list = new ArrayList<>();
list.add("1");
list.add("2");
list.add("3");
ArrayList<String> list1 = new ArrayList<>();
list1.add("a");
list1.add("b");
list1.add("c");
System.out.println("-----传入一个对象------");
test(list);
System.out.println("-----传入两个对象------");
test(list,list1);
System.out.println("传入两个Person对象");
test1(new Person("zs","1"),new Person("lisi","2"));
}
public static void test(List... arguments) {
for (int i = 0; i < arguments.length; i++) {
System.out.println(arguments[i]);
}
}
public static void test1(Person...arguments){
for (int i=0;i<arguments.length;i++){
System.out.println(arguments[i]);
}
}
}
输出结果
-----传入一个对象------
[1, 2, 3]
-----传入两个对象------
[1, 2, 3]
[a, b, c]
传入一个Person对象
Person{username='zs', grade='1'}
Person{username='lisi', grade='2'}