虽然不是100%确定,但我假设在Java(以及)中,Enum.values()方法是由编译器生成的:
自Kotlin 1.1 起,可以使用 enumValues<T>() 和enumValueOf<T>() 函数以泛型的方式访问枚举类中的常量。 1.4.1、访问枚举变量属性 例: fun main(args: Array<String>) { println("name = " + Color.RED.name + "\tordinal = " + Color.RED.ordinal) println("name = " + Color.WHITE.name + "...
从Kotlin1.1开始,还有一些辅助方法可用:
// EnumClass.valueOf(value: String): EnumClass // EnumClass.values(): Array<EnumClass> // enumValues<T>() // enumValueOf<T>() enumclassRGB{ RED, GREEN, BLUE } inlinefun<reifiedT : Enum<T>>printAllValues(){ print(enumValues<T>().joinToString { it.name }) } printAllValues<RGB...
自Kotlin 1.1起,可以使用 enumValues<T>()和 enumValueOf<T>()函数以泛型的方式访问枚举类中的常量。 1.4.1、访问枚举变量属性 例: funmain(args:Array<String>){println("name = "+Color.RED.name+"\tordinal = "+Color.RED.ordinal)println("name = "+Color.WHITE.name+"\tordinal = "+Color.WHIT...
fun enumContains(name: String): Boolean { return enumValues<Months>().any { it.name == name } } fun main(args: Array<String>) { if (enumContains("")) { println(Months.valueOf("")) } else { println("The string value does not match with any of the enum constants.") //this ...
*/ public fun booleanArrayOf(vararg elements: Boolean): BooleanArray /** * Returns an array containing enum T entries. */ @SinceKotlin("1.1") public inline fun <reified T : Enum<T>> enumValues(): Array<T> /** * Returns an enum entry with specified name. */ @SinceKotlin("1.1")...
在enum class中使用分号将enum constant list和method definitions分隔开。 2. 使用"when"来处理enum class when在kotlin中是一个表达式(expression),用于checking values for equality。 因此,可以使用when写一个expression body类型的函数。 fungetMnemonic(color:Color):String=when(color){Color.RED->"Richard"Color...
Since Kotlin 1.9, the .entries property is generated at build time for enum classes. Unlike Enum.values(), this property doesn't instantiate a new array with every enum case every time it's used, i...
Language: experimental replacement of the Enum class `values()` function with the `entries` property, experimental lifting restrictions on secondary constructor bodies in value (inline) classes, experimental data objects Kotlin/JVM: JVM IR for the kapt stub generation enabled by default Kotlin/Native...