首页 > 解决方案 > 泛型的 Kotlin 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() 中遇到错误:

错误

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

任何帮助表示赞赏,谢谢

标签: androidgenericskotlinandroid-mvp

解决方案


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

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

outBaseView.


推荐阅读