我开始学习 AsyncTask,在一堂课中我看到了以下代码:
class MyTask extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
tvInfo.setText("Begin");
}
@Override
protected Void doInBackground(Void... params) {
try {
TimeUnit.SECONDS.sleep(2);
} catch (InterruptedException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
tvInfo.setText("End");
}
}
什么是 Void 类(带有大写字母),它的用途是什么,为什么不能使用常规的 void?
Void 是
void
. 在参数化类中使用是必需的,因为 只有类可以是参数,原语不能是参数。您可以安全地使用
Void
代替void
,以及,例如,Integer
代替int
。但是,在这种情况下,必须满足编译器的要求。例如,对于void
方法return
,您可以省略它,但对于Void
方法,您必须显式注册它。这是一个例子:这里还有几个链接:
https://stackoverflow.com/questions/10839042/what-is-the-difference-between-java-lang-void-and-void/12630665
https://www.baeldung.com/java-void-type