2015-10-26 26 views
0

如何在AsyncTask的子類中使用變量類型參數(我打算再次子類化)在靜態上下文中使用類型參數?AsyncTask將通用類型傳遞給內部接口結果處理程序

例如:

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,我想ResultListener的接口方法簽名中使用類型變量「ListType」返回的AsyncTask的結果,但我不能引用它,由於接口的靜態上下文作爲內部接口。

我想我可以定義AsyncTask類以外的接口,但想法是讓它們緊密結合。

回答

1

我想你有2個選擇。

(1)使界面通用:

public interface ResultListener<ListType> { 
    void handleAsyncResult(List<ListType> result); 
} 

(2)使用的(內)抽象類,而非接口:

public abstract class ResultListener { 
    void handleAsyncResult(List<ListType> result); 
} 
+0

美麗。我選擇了1),我甚至沒有意識到這是一種可能性。謝謝你打開我的眼睛,保羅。 – Baker

+0

不用擔心。很高興我能幫上忙。 –

相關問題