关于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很是奇怪,没见过还有这种用法,真是孤陋寡闻了。

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

 

限制:

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

目录
相关文章
|
1月前
|
索引 Python
String(字符串)
String(字符串)。
28 3
|
安全 Java 编译器
JAVA字符串String
JAVA字符串String
44 0
|
存储 Java 索引
String 有长度限制吗?是多少?
String 类型的对象,他们是有长度限制的,String 对象并不能“存储”无限长度的字符串。关于 String 的长度限制要从编译时限制和运行时限制两方面考虑。
1101 0
|
Java
String字符串
在Java里面使用的是String作为字符串的定义。
93 0
String字符串
|
存储
写出 String s = “hello“; 和 String s2 = new String(“world“);创建字符 串的区别
** 写出 String s = “hello”; 和 String s2 = new String(“world”);创建字符 串的区别。 **
196 0
写出 String s = “hello“; 和 String s2 = new String(“world“);创建字符 串的区别
|
Java 开发者
String字符串| 学习笔记
快速学习String字符串
String字符串| 学习笔记
String str=“i“与 String str=new String(“i”)一样吗?面试篇(第八天)
String str=“i“与 String str=new String(“i”)一样吗?本文带大家回答这个问题。
400 0
String str=“i“与 String str=new String(“i”)一样吗?面试篇(第八天)
|
存储 Java 编译器
Java字符串String的那些事
Java字符串String的那些事
119 0
每天一个知识点(二)String str=“i”与 String str=new String(“i”)一样吗?
不一样,使用String str="i",java虚拟机会把它分配到常量池中,而 String str=new String(“i”)创建了一个对象,会被分到堆内存中。