次のように、AsyncTaskのResultパラメーターに上限を設定しようとしています。
public class MyTask extends AsyncTask<T, Long, V extends Model>
コンパイラは、'extendsは予期されておらず、コンマを予期していると文句を言っています。
Modelを抽象クラスと通常のクラスとして書いてみました。
何か案は?
ありがとう、デビッド
次のように、AsyncTaskのResultパラメーターに上限を設定しようとしています。
public class MyTask extends AsyncTask<T, Long, V extends Model>
コンパイラは、'extendsは予期されておらず、コンマを予期していると文句を言っています。
Modelを抽象クラスと通常のクラスとして書いてみました。
何か案は?
ありがとう、デビッド
TおよびVは未解決の型パラメータであるためMyTask、それらでパラメータ化する必要があります。次のように宣言してみてください。
public class MyTask<T, V extends Model> extends AsyncTask<T, Long, V>
私もに変更callsしましたclass-それはタイプミスだったと思います。
あなたのコメントに応えて:
MyTask<T, V extends Model>
ここでMyClassは、型パラメータとを宣言しています。タイプパラメータが宣言されている場合、オプションで。で制限できます。制限はありません-任意の参照型にすることができます。の上限は。-であるか、拡張するタイプである必要があります。TVextendsTVModelModel
extends AsyncTask<T, Long, V>
拡張されていないクラスの宣言と同様にObject、これはMyTask拡張されていることを意味しますAsyncTask-あなたはそれだけ理解していると確信しています。AsyncTask3つの型パラメーターがあります。その宣言では、、、、およびと呼ばParamsれます。ここでは、これらの型パラメーターに型引数- 、、、およびを提供しています。ProgressResultMyTaskTLongV
したがって、無制限の型パラメーターとしてMyTask保持し、具象型で解決し、。で境界を設定します。Params ProgressLongResultModel
ジェネリックスの優れた入門書については、 Javaチュートリアルを参照してください。その後、さらに質問がある場合は、 AngelikaLangerのGenericsFAQを参照してください。