Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取任意变量的Kotlin枚举值列表_Kotlin_Enums - Fatal编程技术网

获取任意变量的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

如何在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(){
    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())
}
}