Kotlin + MVP - 意外覆盖

sco*_*ord 2 mvp android kotlin

我一起使用Kotlin和MVP,偶然发现了一点烦恼.

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

根据我的研究,没有办法阻止kotlin为'x'生成吸气剂.

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

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

interface MainView {
    fun getX(): String
}
Run Code Online (Sandbox Code Playgroud)

zsm*_*b13 5

您可以使您的属性private阻止为其生成getter:

private val x: String = ""
Run Code Online (Sandbox Code Playgroud)

或者,您可以将其设置为简单的Java字段,而不是具有@JvmField注释的属性:

@JvmField val x: String = ""
Run Code Online (Sandbox Code Playgroud)