gpt4 book ai didi

kotlin - 从 init block 中的方法初始化 Kotlin 中的 val

转载 作者:行者123 更新时间:2023-12-03 23:01:19 26 4
gpt4 key购买 nike

让我们上课如下:

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 abstractVal cannot be reassigned .
有没有办法使用 init 块中的方法来初始化类的 val 成员?

最佳答案

不,但您可以有多个 init 块,每个块对应于您将使用的方法。
或者,您可以设置属性 lateinit var , 但是之后

  • 这是一个 var ,不是 val ;
  • 很容易不会意外地初始化它。
  • 关于kotlin - 从 init block 中的方法初始化 Kotlin 中的 val,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65528046/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com