Kotlin MVP实现与泛型的问题

时间:2019-05-11 15:19:42

标签: android generics kotlin android-mvp

尝试通过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()中遇到如下错误:

error

我假设在BaseActivity中有一些关于泛型的问题,但是我不知道是什么。

感谢您的帮助, 谢谢

1 个答案:

答案 0 :(得分:1)

第一个代码块中的第一类应定义为

abstract class BaseActivity<P : BasePresenter<out BaseView>> : BaseView, AppCompatActivity() {
//...
}

键是out上的BaseView修饰符。