• 关于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[] 相比, 不需要事先声明并构造一个对象数组的实例。

    限制:

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

  • 相关阅读:
    让一个不固定高度的div,保持垂直水平居中的方法
    Set、Map、WeakSet 和 WeakMap
    JS 中常用的 Math 方法
    不使用 new,创建一个实例对象
    做一个弹窗
    变量提升
    事件委托实践
    vue组件通信
    新版vue脚手架关闭eslint
    图片懒加载原生js实现
  • 原文地址:https://www.cnblogs.com/AloneSword/p/4108663.html
Copyright © 2020-2023  润新知