我们说我用private final String s
(Java)或val s
(Kotlin)宣布了最后一个字段。在初始化期间,我想用调用远程服务的结果初始化该字段。在Java中,我可以在构造函数中初始化它(例如s = RemoteService.result()
),但在Kotlin中,我无法弄清楚如何做到这一点,因为据我所知,该字段必须在它声明的同一行。这里的解决方案是什么?
答案 0 :(得分:14)
您可以在init block中设置val
值:
class MyClass {
val s: String
init {
s = "value"
}
}
答案 1 :(得分:8)
答案 2 :(得分:0)
自Kotlin首次正式稳定发行以来,就可以像这样简单地做到这一点:
class MyClass {
val s = RemoteService.result()
}
答案 3 :(得分:0)