如何在静态上下文中使用Type参数的AsyncTask(我打算再次进行子类化)的子类中使用变量Type参数?
例如:
public abstract class ListAsyncTask<Identifier,ListType> extends AbsAsyncTask<Identifier, List<ListType>> {
protected final String TAG = Utils.generateTag(this.getClass());
ResultListener listener;
WebProxy proxy;
String server;
public interface ResultListener {
void handleAsyncResult(List<?> result);
}
我正在使用ResultListener返回AsyncTask的结果,我想在ResultListener的接口方法签名中使用Type变量“ListType”,但由于接口的静态上下文作为内部接口,我无法引用它。
我想我可以在AsyncTask类之外定义接口,但我们的想法是让它们紧密结合。
答案 0 :(得分:1)
我认为你有2个选择。
(1)使界面通用:
public interface ResultListener<ListType> {
void handleAsyncResult(List<ListType> result);
}
(2)使用(内部)抽象类而不是接口:
public abstract class ResultListener {
void handleAsyncResult(List<ListType> result);
}