list = new ArrayList<>(); list.">
菜鸟笔记
提升您的技术认知

Java中“...“的含义

前情概要:在翻看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'}