Enum懒惰的属性

时间:2018-01-09 14:40:04

标签: enums kotlin

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

enum class MyEnun(var sampleObject: MyObjectType){
   ONE(MyObjectType(blabla)),
   TWO(MyObjectType(blabla))
}

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

1 个答案:

答案 0 :(得分:5)

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

enum class Foo(input: String) {

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

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

fun main(args: Array<String>) {
    Foo.ONE
}

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

Received one
Received two

如果它们是懒洋洋地创建的,我会期望只有#34;收到一个&#34;印刷。