Enum懒惰的属性

rdi*_*z82 4 enums kotlin

我想知道kotlin如何处理枚举属性.如果我们有一个具有以下结构的枚举:

enum class MyEnun(var sampleObject: MyObjectType){
   ONE(MyObjectType(blabla)),
   TWO(MyObjectType(blabla))
}
Run Code Online (Sandbox Code Playgroud)

两个MyObjectType实例是以惰性方式创建的,相反,它们是在创建枚举时创建的?

Tod*_*odd 5

所有实例都是同时创建的.

enum class Foo(input: String) {

    ONE("one"),
    TWO("two");

    init {
        println("Received $input")
    }
}

fun main(args: Array<String>) {
    Foo.ONE
}
Run Code Online (Sandbox Code Playgroud)

当我跑的时候,我得到了以下内容:

Received one
Received two
Run Code Online (Sandbox Code Playgroud)

如果它们是懒惰地创建的,我希望只有"收到一个"才能打印出来.