java中的三点参数

java5开始,java语言对方法参数支持的一种新写法,称为可变长度参数列表,接受的长度是0+个Object,或者是Object [],即Object数组。

如果既有test(String...strings)函数,又有test()函数,我们在调用test()时,会优先使用test()函数。只有当没有test()函数式,我们调用test(),程序才会走test(String...strings)。


public class Demo3PointParam {
    private void test(String... strings) {
        if (strings != null) {
            for (int i = 0; i < strings.length; i++) {
                System.out.println(String.format("三点参数的test函数的strings数据的第 %s 个参数是:%s ", String.valueOf(i), strings[i]));
            }
        } else {
            System.out.println("数据不存在");
        }
    }

    private void test2() {
        System.out.println("执行无参函数test2");
    }

    private String test2(int... ints) {
        StringBuffer stringBuffer = new StringBuffer();
        stringBuffer.append("三点参数的test2函数的数据是:");
        if (ints != null) {
            for (int i = 0; i < ints.length; i++) {
                stringBuffer.append(String.valueOf(ints[i]));
            }
        }
        return stringBuffer.toString();
    }

    public static void main(String[] args) {
        Demo3PointParam demo = new Demo3PointParam();
        demo.test();//可以使用,但不会输出任何数据
        demo.test(null);//数据不存在
        demo.test(new String[]{"111", "222", "333"});
        demo.test("a", "b");
        demo.test2();
        System.out.println(demo.test2(null));
        System.out.println(demo.test2(22));
        System.out.println(demo.test2(33, 44, 55));
    }
}

执行结果:

java中的三点参数