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 

目的是产生一个唯一的属性。 用例包括弹簧依赖注入。