我想知道kotlin如何处理枚举属性。如果我们有一个具有以下结构的枚举:
enum class MyEnun(var sampleObject: MyObjectType){
ONE(MyObjectType(blabla)),
TWO(MyObjectType(blabla))
}
是否以惰性方式创建了两个MyObjectType实例,相反,它们是在创建枚举时创建的?
答案 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;印刷。