我在代码中有这样的东西

var barCode: BarCode? = null

现在 getBarCode() 在接口(interface)中定义 - 然后我收到错误,这可能是意外覆盖。不幸的是,这不起作用:
var barCode: BarCode? = null
override get

我可以做这样的事情:
private var barCode: BarCode? = null

override fun getBarCode(): BarCode? = barCode
fun setBarCode(barCode: BarCode) {
    this.barCode = barCode
}

但这看起来像 kotlin 的许多喜欢和冗长的方式 - 必须有一个更短的方式 - 特别是因为这种模式将在本类(class)中多次重复

最佳答案

从 Kotlin 1.0 开始,没有更短的方法:Java 接口(interface)中的方法 getBarCode() 需要由 Kotlin 中名为 getBarCode() 的方法实现,而不是由名为 barCode 的属性实现。

an issue 请求可以使用属性覆盖 Java 方法;您可以投票支持它以获取更新通知。

关于kotlin - 修饰符 'override' 不适用于 'getter',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36238648/

10-10 07:08