我有在内部声明方法的枚举类
enum class MyEnum {
VAL1, VAL2, VAL3;
fun myFunc(): Any{
// Here I want to access selected value
// VAL1 in my example
}
}
我可以这样调用此方法
MyEnum.VAL1.myFunc()
但是是否有可能在myFunc
内部调用value方法?在我的示例中为VAL1
。
答案 0 :(得分:4)
您可以使用this
和this.ordinal
来返回此枚举常量的序数
同样,如果您这样做:
fun myFunc(): Any{
val array = MyEnum.values()
println(array[this.ordinal])
println(this)
return array[this.ordinal]
}
并致电MyEnum.VAL2.myFunc()
,您将看到VAL2
答案 1 :(得分:1)
请尝试
enum class MyEnum {
VAL1 {
override fun myFunc() {
//do something with VAL1 using this
}
},
VAL2 {
override fun myFunc() {
//do something with VAL2 using this
}
},
VAL3 {
override fun myFunc() {
//do something with VAL3 using this
}
};
abstract fun myFunc()
}