关于String 后面跟省略号。。。

今天阅读MonkeyRunner源码的时候发现下面一段:

private String shell(String... args) {
        StringBuilder cmd = new StringBuilder();
        for (String arg : args) {
            cmd.append(arg).append(" ");
        }
        return shell(cmd.toString());
    }

其中的String... args很是奇怪,没见过还有这种用法,真是孤陋寡闻了。。。。网上查了下这个叫做可变长参数!

顾名思义就是可以传入的字符串参数个数不固定,可以是1-n, 例如可以这样调用这个方法: 

shell(“arg1”); 

shell(“arg1”,“arg2”);

shell(“arg1”,“arg2”,“arg3”,“arg4”,“arg5”);等

其实际上与shell(String[] args){...} 类似,在函数内部args就是被理解为一个String[]类型的字符串数组。

这样做的好处:

    不用为了实现传入不同个数的参数多次重载这个方法。

    与使用Object[] 相比, 不需要事先声明并构造一个对象数组的实例。

限制:

  只能作为方法的最后一个参数,且只能有一个

原文地址:https://www.cnblogs.com/AloneSword/p/4108663.html