可能重复:
What is the ellipsis for in this method signature?java中'...'是什么?
我看到了在Java代码中的 “T ...元素”。 这是什么意思? 谢谢!
可能重复:
What is the ellipsis for in this method signature?java中'...'是什么?
我看到了在Java代码中的 “T ...元素”。 这是什么意思? 谢谢!
这意味着,您可以将所有需要的T变量传递给方法。
如果一个方法是:
public void myMethod(String... a)
{
}
您可以拨打电话与您要该方法的所有字符串对象:对语言功能
myMethod("s1");
myMethod("s1", "s2");
myMethod("s1", "s2", "s3");
myMethod("s1", "s2", "s3", "s4");
Here's Java的官方文件。它被引入Java 5。
这意味着您可以将0个或更多元素传入方法。
你会使用这样的:
public void method(String str, int... elements) {
for (int i = 0; i < elements.length; i++) {
print(str + " " + elements[i];
}
}
而且,你可以这样调用:
method("Hi");
method("He", 1, 2 , 3, 4, 5);
method("Ha", 1 , 2);
int[] arr = {1, 2 , 3 ,3 ,4};
method("Ho", arr);
它是T的阵列(T[]
)的占位符,其中阵列本身可以指定为t1,t2,t3等,其中所有ts都是T型。
CF:http://download.oracle.com/javase/1.5.0/docs/guide/language/varargs.html
它在方法声明中使用:
void someMethod(String... strings) {
//blabla method body
}
意味着你可以把字符串的数组作为参数,或由字符串逗号分隔。这两个调用都是有效的:
someMethod("a", "b", "c");
String[] stringsArray = new String[] {"a", "b", "c"};
some Method(stringsArray);
这意味着您可以传递0个或多个对象T的实例。您可以将这些参数作为数组访问。
例子:
public void printStrings(String... strings)
{
for (String string : strings) {
System.out.println(string);
}
}
然后,您可以调用使用任何这些调用这个方法:
printStrings("one", "two", "three", "four");
printStrings(new String[] { "one", "two", "three", "four" });
printStrings(/* any array of strings, even an empty array */);
你的情况。 T ...意思是你可以传入任意数量的类型T的实例,这是一个通用的类,应该在类文件的顶部定义。
请参阅[此方法签名中的省略号是什么?](http://stackoverflow.com/questions/2367398/what-is-the-ellipsis-for-in-this-method-signature) – 2010-09-01 21:27:41