我在代码中有这样的东西
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/