我有以下代码:
interface MVPView <A, B> {
void updateView(A a);
void attachPresenter(B presenter);
}
public class ConcreteMVPView implements MVPView<MyObject, MyPresenter> {
}
这样编译就可以了。
但是,如果我将代码更改如下:
interface MVP <B> {
void attachPresenter(B presenter);
}
interface MVPView <A> extends MVP {
void updateView(A a);
}
public class ConcreteMVPView implements MVPView<MyObject> {
// how can I implement that attachPresenter?
}
该代码甚至无法编译。我究竟做错了什么?
最佳答案
如果只需要实现MVP
,则可以通过以下方式实现:
interface MVP<B> {
void attachPresenter(B presenter);
}
public class MVPImpl implements MVPView<MyPresenter> {
}
如果要实现
MVPView
,可以执行以下操作:interface MVP<B> {
void attachPresenter(B presenter);
}
interface MVPView<A, B> extends MVP<B> {
void updateView(A a);
}
public class ConcreteMVPView implements MVPView<MyObject, MyPresenter> {
}
关于java - 没有编译错误就无法扩展通用接口(interface),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52182797/