今天阅读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[] 相比, 不需要事先声明并构造一个对象数组的实例。
限制:
只能作为方法的最后一个参数,且只能有一个