【问题标题】:Kotlin: 'public' property exposes its 'local' type argument <no name provided>Kotlin:“公共”属性公开其“本地”类型参数<未提供名称>
【发布时间】:2020-09-07 04:42:20
【问题描述】:
interface A {
    fun f() : String
}

val B = { attr : String ->
    object : A {
        override fun f() = attr
    }
}

我在B 的定义处收到此错误:

'public' property exposes its 'local' type argument <no name provided>

这个错误的原因是什么?

【问题讨论】:

    标签: java kotlin lambda


    【解决方案1】:

    您正在返回一个匿名单例对象,而 kotlin 无法找出未提供名称的类型。您可以明确指定B 的类型来解决此问题

    val B: (String) -> A = { attr: String ->
        object : A {
            override fun f() = attr
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-07
      • 2011-09-06
      • 2020-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-18
      相关资源
      最近更新 更多