android - Kotlin + MVP - 意外覆盖

标签 android kotlin mvp

我同时使用 Kotlin 和 MVP 并偶然发现了一点烦恼。

我收到“意外覆盖”错误(正如您从下面可以看出的)。除了更改 MainView 界面中的成员变量名称或 getX() 之外,是否有任何解决方案?

根据我的研究,没有办法阻止 kotlin 生成“x”的 getter。

class MainActivity : Activity(), MainView {
    val x: String // Accidental override

    override fun getX(): String {
        return x
    }
}

interface MainView {
    fun getX(): String
}

最佳答案

您可以将您的属性设置为私有(private),以防止为其生成 getter:

private val x: String = ""

或者,您可以将其设为一个简单的 Java 字段,而不是使用 @JvmField 的属性。注释:

@JvmField val x: String = ""

关于android - Kotlin + MVP - 意外覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44584117/

相关文章:

android - 如何从 Locu API 获取餐厅菜单

android - 使用 appcompat v7 自定义 EditText 样式

android - 在 kotlin 协程中实现 async-await()

Android MVP - 如何在后台服务中创建模型/存储库实例以访问模型方法?

android - ListView 文本消失

java - android.content.res.Resources$NotFoundException -/res/color/file.xml

spring - Kotlin - lateinit TestRestTemplate 没有为集成测试初始化

android - 用于更改语言的 LocaleManager 在 Marshmallow 设备中不起作用

c# - 使用 View 注册演示者

Android MVP - 在 View 实现( fragment 或 Activity )中调用 View 方法