获取任意变量的Kotlin枚举值列表
如何在Kotlin中检索任何类型变量的枚举值列表?关于如何打印枚举值列表有很多问题,但这些问题都是从一个已知的枚举类开始的。如何获取作为枚举的变量的枚举值列表获取任意变量的Kotlin枚举值列表,kotlin,enums,Kotlin,Enums,如何在Kotlin中检索任何类型变量的枚举值列表?关于如何打印枚举值列表有很多问题,但这些问题都是从一个已知的枚举类开始的。如何获取作为枚举的变量的枚举值列表 import kotlin.reflect.full.isSubclassOf enum class Direction { NORTH, SOUTH, WEST, EAST } enum class Days { MON, TUE, WED, THU, FRI, SAY, SUN } fun main(){ v
import kotlin.reflect.full.isSubclassOf
enum class Direction { NORTH, SOUTH, WEST, EAST }
enum class Days { MON, TUE, WED, THU, FRI, SAY, SUN }
fun main(){
val x1: Any = Direction.NORTH
val x2: Any = Days.TUE
val x3: Any = 100.0
printEnumValues(x1)// should print NORTH, SOUTH, WEST, EAST
printEnumValues(x2)// should print MON, TUE, WED, THU, FRI, SAY, SUN
printEnumValues(x3)// should print nothing.
}
fun printEnumValues(arg : Any)
{
if (arg::class.isSubclassOf(Enum::class)){
// How to get and print the list of possible enum values here?
}
}
我不知道是否可以用Kotlin反射来完成,但您可以借用Java反射来这样做:
fun printEnumValues(arg: Any) {
if (arg is Enum<*>) {
println(arg::class.java.enumConstants.joinToString())
}
}
fun printnumvalue(arg:Any){
if(arg是枚举){
println(arg::class.java.enumConstants.joinToString())
}
}
我不知道是否可以用Kotlin反射来完成,但您可以借用Java反射来这样做:
fun printEnumValues(arg: Any) {
if (arg is Enum<*>) {
println(arg::class.java.enumConstants.joinToString())
}
}
fun printnumvalue(arg:Any){
if(arg是枚举){
println(arg::class.java.enumConstants.joinToString())
}
}