1 | initial version |
To alter Enum properties by extracting data class, you can follow these steps:
data class MyDataClass(val value1: String, val value2: Int)
enum class MyEnum {
VALUE1 {
override fun getDataClass(): MyDataClass {
return MyDataClass("value1", 1)
}
},
VALUE2 {
override fun getDataClass(): MyDataClass {
return MyDataClass("value2", 2)
}
};
abstract fun getDataClass(): MyDataClass
}
val data1 = MyEnum.VALUE1.getDataClass()
val value1 = data1.value1 // "value1"
val value2 = data1.value2 // 1