(afaik), K K extends Enum<K> ( EnumMap) K, , generics - .
java EnumMap (.. , ). , . , :
val constructor = EnumMap::class.constructors.find {
con ->
con.parameters.size == 1
&& con.parameters[0].type.jvmErasure == Class::class
}!!
inline fun <reified K, V> mapOf(): Map<K, V> =
if (K::class.java.isEnum) constructor.call(K::class.java) as Map<K, V>
else emptyMap()
, . .