[英]How to create abstract generic class that extends RuntimeException
[英]Create an abstract class that extends AsyncTask
我想創建一個中間的抽象類,該類將AsyncTask擴展為在密切相關的類之間共享代碼。 真正的具體類將擴展中間的抽象類以定義細節。
對於AsyncTask,我需要指定參數,進度和結果。 但是,在中間層,我沒有任何實現細節。 那么,應該如何為具體類保留詳細定義呢?
//實現共享代碼的中間層
public class SiteAsyncTask extends AsyncTask<?, ?, ?>{
//混凝土層
public class GetSiteAsyncTask extends SiteAsyncTask<Void, Void, Site> {
public class ListSiteAsyncTask extends SiteAsyncTask<Void, Void, ArrayList<Site> {
//在中間的抽象層上,如何將參數,進度和結果定義為通用。 結果可以是一個站點或站點的數組列表
public class SiteAsyncTask extends AsyncTask<?, ?, ?>{
//在中間層,如何定義doInBackground使其通用。 它可以是一個Site或Site的ArrayList
protected Site doInBackground(Void... params) {
謝謝
當使用泛型擴展類時,您可以在子類中重新定義泛型,然后將其重新應用於父類的定義。
如果您需要所有參數,
public class SiteAsyncTask<Input, Progress, Result> extends AsyncTask<Input, Progress, Result>{}
如果你只關心結果,
public class SiteAsyncTask<Result> extends AsyncTask<Void, Void, Result>{}
如果你不在乎
public class SiteAsyncTask extends AsyncTask<Void, Void, Void>{}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.