【问题标题】:Modifier 'override' is not applicable to 'getter'修饰符“覆盖”不适用于“吸气剂”
【发布时间】:2016-03-26 17:44:47
【问题描述】:

我在代码中有这样的东西

var barCode: BarCode? = null

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

var barCode: BarCode? = null
override get

我可以这样做:

private var barCode: BarCode? = null

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

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

【问题讨论】:

  • 界面是你无法控制的?不能把接口中的方法转成属性吗?
  • 接口是java

标签: kotlin


【解决方案1】:

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

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

【讨论】:

  • 感谢您提供详细信息!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-26
相关资源
最近更新 更多