我正在查看一些代码并看到以下符号。我有点不确定这三个点是什么意思,你怎么称呼它们。
void doAction(Object...o);
谢谢。
这意味着该方法可以接收多个 Object 作为参数。为了更好地理解,请从此处查看以下示例:
省略号 (...) 标识可变数量的参数,并在以下求和方法中演示。
static int sum (int ... numbers)
{
int total = 0;
for (int i = 0; i < numbers.length; i++)
total += numbers [i];
return total;
}
在 JVM 的限制范围内,使用尽可能多的逗号分隔整数参数调用 summation 方法。一些例子:sum (10, 20) 和 sum (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);
}
}
如评论部分所述:
另请注意,如果函数传递的参数类型与可变参数不同,可变参数应该是函数声明中的最后一个参数public void test (Typev ... v , Type1 a, Type2 b)或public void test(Type1 a, Typev ... v recipientJids, Type2 b) - 是非法的。只有公共无效测试(Type1 a,Type2 b,Typev ... v)
It's called VarArgs http://www.javadb.com/using-varargs-in-java. In this case, it means you can put multiple instances of Object as a parameter to doAction() as many as you wants :
doAction(new Object(), new Object(), new Object());