尝试使用Kotlin实现简单的MVP结构,
这是我的基类:
abstract class BaseActivity<P : BasePresenter<BaseView>> : BaseView, AppCompatActivity() {
//...
}
abstract class BasePresenter<V : BaseView> {
//...
}
interface BaseView {
//...
}
并尝试使用此结构
class DummyActivity : BaseActivity<DummyPresenter>(), DummyView.View {
//...
}
class DummyPresenter : BasePresenter<DummyView.View>(), DummyView.UserActionListener {
//...
}
interface DummyView {
interface View : BaseView {
fun displayLoading()
}
interface UserActionListener {
fun onButtonClicked()
}
}
但是我在DummyActivity,BaseActivity()中得到一个错误:
我假设在BaseActivity中有一些关于泛型的问题,但是我不知道是什么。
感谢您的帮助,
谢谢
最佳答案
第一个代码块中的第一类应定义为
abstract class BaseActivity<P : BasePresenter<out BaseView>> : BaseView, AppCompatActivity() {
//...
}
键是
out
上的BaseView
修饰符。关于android - Kotlin MVP实现与泛型的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56091644/