小编Nig*_*Eke的帖子

什么是Kotlin类初始化语义?

我无法在语言定义中找到解释Kotlin中类的初始化的任何内容.

import java.util.Properties

fun main(args: Array<String>) {
    val out = MyClass()
    out.fn()
}

class MyClass {
    private val a = Properties() // 1

    init {
        fn()
    }

    public fun fn() {
        println("Fn called.  a = $a")
    }

    //  private val a = Properties() // 2
}
Run Code Online (Sandbox Code Playgroud)

运行此程序的结果会根据属性是在(1)还是在(2)初始化而更改.

我很惊讶声明顺序与语言相关,并且想了解这背后的决定.我的期望是在调用构造函数体之前初始化属性.

constructor initialization class kotlin

14
推荐指数
2
解决办法
9221
查看次数

标签 统计

class ×1

constructor ×1

initialization ×1

kotlin ×1