android - 泛型的 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 中有一些关于泛型的问题需要修复,但是我不知道是什么。
任何帮助表示赞赏,谢谢
解决方案
第一个代码块中的第一类应定义为
abstract class BaseActivity<P : BasePresenter<out BaseView>> : BaseView, AppCompatActivity() {
//...
}
键out
是BaseView
.
推荐阅读
- c - 为什么我的结果中出现随机数?
- javascript - 检查 DynamoDB 表是否包含键并返回布尔值
- javascript - 使用 Ajax 将 var 发送到查询
- tortoisesvn - TortoiseSVN - Trac - TracExplorer HELL
- java - 所有相同号码的电话号码验证都应该失败
- javascript - 尝试查看帖子时出现 Nextjs 404
- ios - 为什么我在测试密码验证时没有收到错误消息?
- javascript - 如何在 React Native 中注入 JavaScript?
- javascript - 在没有 jQuery 的情况下从数据属性中获取数组
- node.js - 如何摆脱 Node.js 中的 [Object: null prototype]?