无效的java函数声明中的参数含义
我最近遇到了一个java代码段。函数定义的格式与我现在知道的不同。以下是代码-无效的java函数声明中的参数含义,java,android,eclipse,adt,Java,Android,Eclipse,Adt,我最近遇到了一个java代码段。函数定义的格式与我现在知道的不同。以下是代码- protected Void doInBackground(String... params) { Log.i(TAG, "doInBackground"); //Invoke web method 'PopulateCountries' with dummy value invokeJSONWS("dummy","PopulateCountries");
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");
}
在以下上下文中,
…
是什么意思?它是可变长度参数Java 5.0有可选参数。只需像这样声明您的函数:
public void doSomething(boolean...optionalFlag) {
...
}
现在可以使用doSomething()
或doSomething(true)
调用
这在Java1.5及更高版本中是“新的”(Java1.4或更早版本不支持)
省略号(…)
标识了数量可变的参数,并且
在下面的求和方法中演示
static int sum (int ... numbers)
{
int total = 0;
for (int i = 0; i < numbers.length; i++)
total += numbers [i];
return total;
}
静态整数和(整数…数字)
{
int-total=0;
for(int i=0;i
它称为varargs
,它表示相同类型的任意数量的参数。您可以按索引访问它,就像访问数组一样
什么是。。。意思是在下面的上下文中
当您想要使用类型为sayString
的参数调用方法,但您不知道要传递多少个参数时,这指定了可变长度参数
因为您可以将任意数量的字符串
传递给方法
所以您可以像这样调用方法
为了
您可以通过以下方式调用此方法:
ob.met()
ob.met("a")
ob.met("a","b")
等等
您可以阅读更多有关它的信息Android是一种通用类型
当您需要一个没有中间进度数据的异步任务时,您应该使用类Void
作为progress
类型变量的规范,将其声明为MyTask extensed AsyncTask
,并遵循通常的通用规则,如果决定覆盖onProgressUpdate
,则必须将其声明为onProgressUpdate(Void…values)
因此,Void…
并不意味着除了通常的vararg方法之外的任何东西,该方法的类型恰好是Void
的可能重复
public void met(String...a)
ob.met()
ob.met("a")
ob.met("a","b")