这个问题已经在这里有一个答案:
- 什么是这种方法的签名省略号(...)呢? 5个回答
我一直在寻找一些代码,看到下面的符号。 我有点不能确定的三个点的意思是,你打电话给他们什么。
void doAction(Object...o);
谢谢。
这个问题已经在这里有一个答案:
我一直在寻找一些代码,看到下面的符号。 我有点不能确定的三个点的意思是,你打电话给他们什么。
void doAction(Object...o);
谢谢。
这意味着,该方法可以接收一个以上的对象作为参数。 为了更好地低估从检查下面的例子在这里 :
省略号(...)标识可变数量的参数,并且证明在以下求和方法。
static int sum (int ... numbers)
{
int total = 0;
for (int i = 0; i < numbers.length; i++)
total += numbers [i];
return total;
}
与尽可能多的逗号分隔的整数参数调用总和法,你的愿望 - JVM的范围之内。 一些例子:和(10,20)和总和(18,20,305,4)。
这是非常有用的,因为它允许你的方法变得更加抽象。 还要检查这个漂亮的例子从SO,分别为用户实现了...符号的优势,使来连接字符串数组在Java中的方法。
从另一示例在Java中可变参数的方法5
public static void test(int some, String... args) {
System.out.print("\n" + some);
for(String arg: args) {
System.out.print(", " + arg);
}
}
正如在评论部分提到:
还要注意的是,如果函数传递不同类型比可变参数参数的其他参数,可变参数的参数应该在函数声明公共无效测试的最后一个参数(Typev ... V,一个类型1,类型2 b)或公共无效测试(类型1一,Typev ... v recipientJids,2型b) -是非法的 。 ONLY 公共无效测试(类型1一,2型B,Typev ... V)
这就是所谓的可变参数http://www.javadb.com/using-varargs-in-java 。 在这种情况下,这意味着你可以把对象的多个实例作为参数传递给doAction()如你想要尽可能多的:
doAction(new Object(), new Object(), new Object());