Kotlin的物业可及性
以下是我们从文档中得知的内容: public
财产的获取者不可能是私人的(似乎是合乎逻辑的),所以:
@Inject var repository: MyExampleRepository? = null private get
不会编译。 好吧,也许我们可以把财产private
并定义public
?
@Inject private var repository: MyExampleRepository? = null public set
这将编译和价值将被实际注入,但我仍然不能在代码中使用它,所以:
service.repository = null
给编译错误:
Kotlin: Cannot access 'repository': it is 'private' in 'MyService'
我想知道是否有可能拥有私人财产与公共二传手。
这是一个已知的问题: KT-10385 :
Kotlin不会为以下代码生成setter方法:
private val someProperty: Integer public set
目的是产生一个唯一的属性。 用例包括弹簧依赖注入。