Possible Duplicate:
varargs and the '…' argument
Java, 3 dots in parameters
号
我在Android的Java文件中看到了这个定义。它看起来就像字符串[]。它们不同吗?谢谢您。
- docs.oracle.com JavaSE 1.5.0 /文档/ /指南/语言/ zwnj varargs.htm &;& # 8203;L
- 和stackoverflow.com /问题/ 1656901 /参数和位置参数
- ……任何好的Java教材或写在最后5年或如此。
varags。如果一个方法签名是method(Param param, String... x),它将采用一个Param类型的对象和任意数量的字符串对象。
如果有一些很酷的事情:
没什么特别的。只是加糖阵列。因此,method(MyObject... o)与method(MyObject[] o)相同。
vararg必须是参数列表中的最后一个参数。
有件有趣的事咬了我一口。method(MyObject... o)可以称为method()而不存在编译错误。Java将内部的非ARG调用转换为EDCOX1×8。所以,要意识到这一点。
它是将数组中的项作为参数写入的语法
例如:
1 2 3
| public String first (String... values) {
return values [0];
} |
然后可以使用first("4","2","5","67")调用此方法。
javacompiler将自己创建一个参数数组。
- 第一个("4"、"2"、"5"、"67"),而不是第一个(4、2、5、67)
- 真的。因为一个原因,我在考虑整数。
它是vararg,参数数目可变。在方法体中,您将其视为字符串[],但当您调用该方法时,可以选择提供字符串[],也可以简单地枚举值。
1 2 3 4 5 6 7
| void foo (String... blah) { }
void bar () {
String[] a = {"hello", "world" };
foo (a ); // call with String[]
foo ("hello", "world"); // or simply enumerate items
} |
用Java 5介绍。
它用于定义参数数目可变的方法。
String是字符串类型。String[]是一个字符串数组。
EDOCX1 11是一个名为省略号的语法糖,在Java 1.5中引入,取自C。它可以用于方法定义,实际上与数组只有一个不同。如果方法定义为:
public void foo(String[] arg){}
必须将数组传递给它:
foo(new String[] {"a","b"});
如果方法定义为:
public void foo(String arg){}
你也可以叫它
foo(new String[] {"a","b"});
或
foo("a","b");