2017-06-16 111 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的名稱 –