我想创建静态方法来重用android docs中的示例:
private class DownloadWebpageTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... urls) {
// params comes from the execute() call: params[0] is the url.
try {
return downloadUrl(urls[0]);
} catch (IOException e) {
return "Unable to retrieve web page. URL may be invalid.";
}
}
// onPostExecute displays the results of the AsyncTask.
@Override
protected void onPostExecute(String result) {
}
}
将doInBackground中的所有参数传递给downloadUrl。 如何用Java做到这一点?
谢谢。
答案 0 :(得分:0)
Java中没有等同于apply()
。
您可以将不定数量的参数作为数组传递。 声明您的方法如下:
void method(String [] urls){
}
并称之为:
object.method(new String [] {"arg1", "arg2"});
或更好的方式:
void method2(String ...urls){
}
你可以简单地称之为:
object.method2("arg1");
object.method2("arg1", "arg2");
object.method2("arg1", "arg2", "arg3");
它有效,因为事实上,编译器会将上面的表达式更改为:
object.method2(new String [] {"arg1"});
object.method2(new String [] {"arg1", "arg2"});
object.method2(new String [] {"arg1", "arg2", "arg3"});
答案 1 :(得分:0)
lambda表达式可能对你有帮助.. http://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html