2017-06-16 88 views
2

我正在使用Kotlin & MVP,偶然发现有点烦恼。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 
} 

回答

5

你可以让你的财产private,以防止一个getter它正在生成:

private val x: String = "" 

或者,你可以把它一个简单的Java领域,而不是与@JvmField注释的属性:

@JvmField val x: String = "" 
+0

您可能想补充说,您可以使用'@ JvmName'来更改getter的名称 –