让我们上课如下:
class TestClass() {
val isInitialised : Boolean
init {
isInitialised = true
}
}
瓦尔 isInitialised
在 init 块中进行了初始化,编译器很高兴。一旦我有更多 val 成员,我想将他们的初始化分组到一个方法并从 init 块调用该方法,例如:class TestClass() {
val isInitialised : Boolean
init {
setInitValue()
}
private fun setInitValue() {
isInitialised = true
}
}
在第二种情况下,我在构建时收到错误:Property must be initialized or be abstract
和 Val cannot be reassigned
.有没有办法使用 init 块中的方法来初始化类的 val 成员?
最佳答案
不,但您可以有多个 init 块,每个块对应于您将使用的方法。
或者,您可以设置属性 lateinit var
, 但是之后
var
,不是 val
; 关于kotlin - 从 init block 中的方法初始化 Kotlin 中的 val,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65528046/