假设我用private final String s(Java)或val s(Kotlin)声明了最后一个字段.在初始化期间,我想用调用远程服务的结果初始化该字段.在Java中,我可以在构造函数中初始化它(例如s = RemoteService.result()),但在Kotlin中我无法弄清楚如何做到这一点,因为据我所知,该字段必须在它声明的同一行中初始化.这里有什么解决方案?
Cor*_*ave 14
您可以val在init块中设置值:
class MyClass {
val s: String
init {
s = "value"
}
}
Run Code Online (Sandbox Code Playgroud)
您还可以初始化值,by lazy并在第一次引用时初始化该值.一个例子
val s by lazy { RemoteService.result() }
Run Code Online (Sandbox Code Playgroud)
kotlin将从表达式的返回类型中猜出s的类型.
| 归档时间: |
|
| 查看次数: |
5822 次 |
| 最近记录: |