java - Kotlin:“公共”属性公开其“本地”类型参数
问题描述
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>
这个错误的原因是什么?
解决方案
您正在返回一个匿名单例对象,而 kotlin 无法找出未提供名称的类型。您可以明确指定类型B
来解决此问题
val B: (String) -> A = { attr: String ->
object : A {
override fun f() = attr
}
}
推荐阅读
- amazon-web-services - 如何为 http api 网关启用执行日志
- javascript - 在 C 和 Javascript 之间共享变量以实现实时仪表板
- javascript - 如果元素没有相同的直接父级,则使用 CSS 更改元素的顺序
- mysql - mysql - 添加行明智的不同激励
- reactjs - 仅在按下添加按钮时循环遍历表格标题,反应 js
- python - 如何过滤 Boto3 s3 对象?
- python - 无头和代理身份验证 Selenium Python
- django - Django:如何在不从数据库中删除优惠券的情况下从订单中删除优惠券?
- python - 在 psql 数据库中插入/更新时正确使用 %s
- api - REST API 是否应该在不应该有查询的请求上返回错误 400?