修饰符“覆盖”不适用于“获取器”

lig*_*igi 3 kotlin

我在代码中有这样的东西

var barCode: BarCode? = null
Run Code Online (Sandbox Code Playgroud)

现在在接口中定义了getBarCode()-然后我收到错误消息,它可能是意外覆盖。不幸的是,这不起作用:

var barCode: BarCode? = null
override get
Run Code Online (Sandbox Code Playgroud)

我可以做这样的事情:

private var barCode: BarCode? = null

override fun getBarCode(): BarCode? = barCode
fun setBarCode(barCode: BarCode) {
    this.barCode = barCode
}
Run Code Online (Sandbox Code Playgroud)

但这看起来像是科特林的许多喜好和冗长的方式-必须有更短的方法-尤其是因为这种模式在课堂上会重复多次

yol*_*ole 5

从Kotlin 1.0开始,没有更短的方法:getBarCode()Java接口中的方法需要通过以getBarCode()Kotlin 命名的方法而不是通过的属性来实现barCode

一个问题要求使用属性覆盖Java方法成为可能。您可以投票给它以获取更新通知。