2010-12-27 16 views
5

私はこの問題が幾分些細なことを認識していますが、私は「正しい」答えを知ることに興味があります。空のJavaジェネリック

は私がandroid.os.AsyncTask< PARAMS、進捗状況、>
を結果を拡張しようとしているが、私の仕事は、任意のパラメータを必要としません。

オーバーロードすると、protected Result doInBackground(Params... params)
パラメータを渡すのに最適な方法は何ですか?

現在、私はParamsタイプとしてObjectを使用してタスクを開始しています:
new MyAsyncTask().execute((Object)null);
これは完全に機能しているが、私は、Javaに新たなんだと、これは良い方法であるかどうかを知りません私がしようとしていることを達成する。

もちろん、私はParamsフィールドのためにvoidまたはnullのようなものを置くことはできませんが、私は、ワイルドカードを使用する場合、私はdoInBackground(Params... params)への引数について何をすべきかがわからないんです。

提案がありますか?

+0

...そして、私はこれがAndroid Developersリファレンスマニュアル(AsyncTaskの下)にあることに気付きました。これに関する詳細については、http://developer.android.com/reference/android/os/AsyncTask.html – koschei

答えて

9

使用Void必要のない任意のデータ型の(資本Vに注意してください)。 @Overrideアノテーションを必ず使用してください。そうすれば、コンパイラは問題を捕捉します。これを実証するHere is a sample application

+0

にお気軽にお問い合わせください。 – koschei

+0

Eyyy!私はより速かった。ハハハ...ちょうど冗談です:D – Cristian

+0

Heh、確かに彼の答えは他の人のスーパーセットです(この例には、execute()の引数なしメソッド呼び出しが含まれています)。私はあなたの答えにも感謝しています、クリスチャン、それはあなたにとって価値があるものです。 :p – koschei

5

Voidクラスを使用してください。

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

Voidクラスを使用できます。これと同じように:

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

あなたは可変引数にパラメータを必要とするメソッドにパラメータを渡すためにしたくない場合は、単にこのように、何も渡しません:

new MyAsyncTask().execute(); 

可変引数パラメータ「0以上」の値を意味します。