2010-12-27 28 views
5

Me doy cuenta de que este problema es algo trivial, pero me interesa saber la respuesta "correcta".Java genéricos vacíos

estoy tratando de extender android.os.AsyncTask< Parámetros, Progreso, Resultado >,
pero mi tarea no es necesario ningún parámetro.

Dado que tengo que sobrecargar protected Result doInBackground(Params... params),
¿cuál es la "mejor" manera de pasar sin parámetros?

Actualmente, estoy usando Object como el tipo Params y comenzar la tarea con:
new MyAsyncTask().execute((Object)null);
Esto es totalmente funcional, pero soy nuevo en Java y no se si esto es una buena manera de logrando lo que estoy tratando de hacer.

Es obvio que no se puede poner algo como void o null en el campo de Params, pero si uso un comodín estoy seguro de qué hacer con los argumentos a doInBackground(Params... params).

¿Alguna sugerencia?

+0

... y luego me di cuenta de que la respuesta a esto estaba en el manual de referencia de Desarrolladores de Android (en AsyncTask). Cualquier persona interesada en obtener más información al respecto: http://developer.android.com/reference/android/os/AsyncTask.html – koschei

Respuesta

9

Uso Void (nótese la capital V) para cualquier tipo de datos que no necesita. Asegúrese de utilizar la anotación @Override, por lo que el compilador detectará cualquier problema. Here is a sample application demostrando esto.

+0

¡Gracias por la respuesta rápida! – koschei

+0

Eyyy! ¡Fui más rápido>. Cristian

+0

Heh, claro, pero su respuesta es un superconjunto de los demás (dado que el ejemplo incluye la llamada al método no-arg para ejecutar()). Agradezco tu respuesta también, Cristian, por lo que eso vale para ti. :pag – koschei

5

Utilice Void clase.

android.os.AsyncTask<Void, Void, Void> 
2

Puede utilizar la clase Void. De este modo:

android.os.AsyncTask<Void, Void, Void> 
1

Si no desea pasar ningún parámetro a método que requieren varargs parámetro, simplemente pase nada, así:

parámetro
new MyAsyncTask().execute(); 

Varargs significa "0" o más valores.