Пустые дженерики Java - PullRequest
       15

Пустые дженерики Java

5 голосов
/ 28 декабря 2010

Я понимаю, что этот вопрос несколько тривиален, но мне интересно знать «правильный» ответ.

Я пытаюсь расширить android.os.AsyncTask<code>< Параметры, Прогресс, Результат >,
но моя задача не требует никаких параметров.

Учитывая, что я должен перегрузить protected Result doInBackground(Params... params),
Каков наилучший способ передачи без параметров?

В настоящее время я использую Object в качестве типа Params и запускаю задачу с:
new MyAsyncTask().execute( (Object)null );
Это полностью функционально, но я новичок в Java и не знаю, является ли это хорошим способом выполнить то, что я пытаюсь сделать.

Очевидно, я не могу вставить что-то вроде void или null в поле Params, но если я использую шаблон, я не уверен, что делать с аргументами doInBackground(Params... params).

Есть предложения?

Ответы [ 4 ]

9 голосов
/ 28 декабря 2010

Используйте Void (обратите внимание на заглавную V) для любых типов данных, которые вам не нужны. Обязательно используйте аннотацию @Override, чтобы компилятор улавливал любые проблемы. Вот пример приложения , демонстрирующий это.

5 голосов
/ 28 декабря 2010

Использование Void класс.

android.os.AsyncTask<Void, Void, Void>
2 голосов
/ 28 декабря 2010

Вы можете использовать класс Void. Вот так:

android.os.AsyncTask<Void, Void, Void>
1 голос
/ 28 декабря 2010

Если вы не хотите передавать какие-либо параметры методу, требующему параметра varargs, просто ничего не передавайте, например:

new MyAsyncTask().execute();

Параметр Varargs означает «0 или более» значений.

...