[英]Java Parameter Generic interface
我對參數通用接口有疑問。 我有2個不同的接口,我需要將該接口傳遞給構造函數,但是構造函數會發出警告。
public interface FormFragmentContract {
interface View extends BaseView {
void updateWorkshopUI(int icon);
void showRemoveFavoriteDialog(String wsId, String name);
void favoriteOnClick();
void showSnackbar();
}
}
public interface WorkshopListContract {
interface View extends BaseView {
void initializeMap();
void onSuccessInitMap();
void favoriteOnClick();
void showSnackBar(String message);
}
}
和構造函數代碼this
給了像下面的警告:
workshopAdapter = new WorkshopAdapter(mActivity, workshopList, this); <- this give warning mismatch type
public WorkshopAdapter(Context context, List<Workshop> workshops, //NEED TO BE GENERIC) {
this.context = context;
this.workshops = workshops;
}
如何使我的兩個接口通用,以便可以將兩個接口都用作參數?
編輯:因為兩個接口都包含favoriteOnClick(),如果我將FormFragmentContract
傳遞到構造函數中,如果我也將它FormFragmentContract
給構造函數,則可以使用FormFragment
的favouriteOnClick(),而使用WorkshopListContract
則相反。
使用常見方法創建一個單獨的接口:
就像是:
public interface WorkshopContractView extends BaseView {
void favoriteOnClick();
void showSnackBar(String message);
}
然后使兩個接口都對其進行擴展:
public interface FormFragmentContract extends WorkshopContractView {
void updateWorkshopUI(int icon);
void showRemoveFavoriteDialog(String wsId, String name);
}
public interface WorkshopListContract extends WorkshopContractView {
void initializeMap();
void onSuccessInitMap();
}
不知道為什么要在那里嵌套接口。 他們似乎多余。
然后,讓您的通用構造函數接受WorkshopContractView
如下所示:
public WorkshopAdapter(Context context, List<Workshop> workshops, WorkshopContractView view) {
this.context = context;
this.workshops = workshops;
//...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.