我最近遇到了一个java片段。函数定义的格式与我现在所知的格式不同。以下是代码 -
protected Void doInBackground(String... params) {
Log.i(TAG, "doInBackground");
//Invoke web method 'PopulateCountries' with dummy value
invokeJSONWS("dummy","PopulateCountries");
return null;
}
和参数
中的...
类似的功能
protected void onProgressUpdate(Void... values) {
Log.i(TAG, "onProgressUpdate");
}
...
在以下背景中的含义是什么?
答案 0 :(得分:22)
......在以下背景下是什么意思。
如果要使用类型为String
的参数调用方法,则指定可变长度参数但是您不知道要传递多少参数可以使用它。< / p>
因为您可以将任意数量的String
传递给方法。
所以你可以像这些方式调用方法。
的
public void met(String...a)
您可以通过
调用此方法ob.met()
ob.met("a")
ob.met("a","b")
等等。
您可以阅读更多相关信息HERE.
答案 1 :(得分:9)
它调用varargs
,它表示相同类型的任意数量的参数。您可以按索引访问它,就像数组一样。
答案 2 :(得分:4)
type ... variableName
ellipsis (...)
标识可变数量的参数,和
用以下求和方法证明。
static int sum (int ... numbers)
{
int total = 0;
for (int i = 0; i < numbers.length; i++)
total += numbers [i];
return total;
}
答案 3 :(得分:3)
Java 5.0中有可选参数。只需声明你的功能:
public void doSomething(boolean...optionalFlag) {
...
}
您现在可以使用doSomething()
或doSomething(true)
致电。
这是&#34; new&#34;在Java 1.5及更高版本中(Java 1.4或更早版本不支持)。
答案 4 :(得分:1)
它是可变长度参数