ich hinzufügen neue globale Höhe Level-Schnittstelle:Wie vermeide ich das Gießen?
public interface MvpView {
}
Meine Höhe Level-Schnittstelle:
public interface OfferDetailsView extends MvpView {
public void showProgress();
}
Eine weitere Schnittstelle:
public interface OfferDetailsPdfMvp {
interface View extends OfferDetailsView {
public void openLocalPdfFile(File file, int pageNumber);
}
interface Presenter extends OfferDetailsPresenter {
public void onPageScrolled(int page, int pageCount);
}
}
Eine weitere Schnittstelle:
public interface OfferDetailsPresenter extends MvpPresenter {
public void downloadToAppDir(boolean isDownloadToAppCacheDir);
public void onClickScreen(boolean isVisibleTopContainer);
}
Eine weitere Schnittstelle:
public interface MvpPresenter<V extends MvpView> {
public void attachView(V mvpView);
}
Basis abstrakte Klasse:
public abstract class BaseOfferDetailsPresenter<T extends MvpView> implements MvpPresenter<T> {
private T view;
@Override
public void attachView(T mvpView) {
this.view = mvpView;
}
public T getView() {
return view;
}
}
Und conrete Klasse, die von Basisklasse erweitern:
public class OfferDetailsPdfPresenterImpl extends BaseOfferDetailsPresenter<OfferDetailsPdfMvp.View> implements OfferDetailsPdfMvp.Presenter {
public void viewIsReady() {
getView().showProgress(); //no cast
getView().openLocalPdfFile(file, currentPageNumber); // no cast
}
Aber ich kompilieren Fehler:
myproject\app\src\main\java\com\myproject\android\customer\presenter\OfferDetailsPdfPresenterImpl.java:35: error: MvpPresenter cannot be inherited with different arguments: <> and <com.myproject.android.customer.mvp.OfferDetailsPdfMvp.View>
public class OfferDetailsPdfPresenterImpl extends BaseOfferDetailsPresenter<OfferDetailsPdfMvp.View> implements OfferDetailsPdfMvp.Presenter {
[Generika?] (Https://ideone.com/cw7p5E) – Selvin
Ich denke auch über Generika. Aber ich bin neu in Generics. Gibt es gute Beispiele? – Alex
Es ist schwer zu sagen, was vor sich geht - der * neue * Code ist kein [mcve]! Ich sehe zum Beispiel keine Definition für 'getView()' mehr. – GhostCat