Расширить абстрактный класс универсальными типами?

Как я могу расширить абстрактный класс, подобный следующему, который имеет общие аргументы?

@Singleton
public abstract class Presenter<V extends View, Proxy_ extends Proxy<?>> extends PresenterWidget<V> {

...
}

2 ответа

Чтобы расширить ответ MariuszS: Обычно докладчик определяет интерфейс представления:

public class MyPresenter extends Presenter<MyPresenter.MyView, MyProxy> {
    public static interface MyView extends View {
    ...
    }
...

Учебный класс Presenter имеет упрощенный общий тип Presenter<V, Proxy_> где

  • V продолжается View
  • Proxy_ продолжается Proxy<?>

Расширяющийся класс должен выглядеть так:

public class MyPresenter extends Presenter<MyView, MyProxy> {
    ...
}

где

  • MyView продолжается View
  • MyProxy продолжается Proxy<?>
Другие вопросы по тегам