java泛型中声明的void类型的用途

时间:2014-03-02 19:30:47

标签: java android

我正在经历vogella's tutorial,我可以跨越这个:

private class DownloadWebPageTask extends AsyncTask<String, Void, String> {

我不确定这个空白是什么意思,为什么要使用它?

4 个答案:

答案 0 :(得分:2)

我们来看看AsyncTask的文档:

  

异步任务使用的三种类型如下:

     
      
  • Params ,执行时发送给任务的参数类型。
  •   
  • 进度,在此期间发布的进度单位的类型   背景计算。
  •   
  • 结果,结果的类型   背景计算。
  •   
     

并非所有类型都始终使用   异步任务。要将类型标记为未使用,只需使用类型Void

private class MyTask extends AsyncTask<Void, Void, Void> { ... }

Void只是一种类型参数,类似于您提供IntegerFloat等的方式。

答案 1 :(得分:1)

第二个参数进入onProgressUpdate()。如果您不想进行更新通知,请将Void作为第二个参数传递,并且不要实施onProgressUpdate()

答案 2 :(得分:1)

在那里使用Void意味着您不会在异步任务完成之前发布结果。

答案 3 :(得分:0)

参见AsyncTask javadoc:

  

并非所有类型都始终由异步任务使用。标记类型   如果未使用,只需使用类型Void

     

private class MyTask extends AsyncTask<Void, Void, Void> { ... }

泛型中的void只是意味着参数化类将在使用此泛型的地方使用void(通常用于返回值)。