En Kotlin, ¿cómo puedo groupBy tipo

Me gustaría agrupar una list por los subtypes de su argumento de tipo genérico.

Es una list con tres types de objects, todos son un subtipo de algún tipo A.

Lo más cercano que puedo get es it.javaClass.typeName o it.javaClass.kotlin

El primero crea keys de cadenas que no son ideales, pero puedo lidiar con ellas. Más tarde crea keys de KClassImpl que no puedo importar, y mucho less crear una instancia de.

¿Cómo se agrupan? Escriba y luego acceda a las diferentes teclas en el map resultante.

Gracias.

Puede referirse a las instancias de la class kotlin como Foo :: class

 data class Person( val firstName : String, val lastName : String ) data class City( val name : String, val population: Int ) fun main(args: Array<String>) { val list = listOf( Person("John", "Doe"), Person("Eugene", "Cuckoo"), City("London", 8500000), City("Berlin", 3500000), City("Hötyökmáró", 2) ) val grouped = list.groupBy { it.javaClass.kotlin } println("Persons: ${grouped[Person::class]}") println("Cities: ${grouped[City::class]}") } 
  • Errores de extensión de Kotlin
  • ¿Hay references de constructores en Kotlin?
  • Kotlin, el elenco inteligente es imposible debido a la expresión compleja
  • ¿Cómo puedo unirme a tres entidades en GreenDao?
  • Administrar objects dentro de actividades para evitar el uso de nulos
  • Delegación de class parcial en Kotlin
  • ClassCastException: android.inputmethodservice.KeyboardView no se puede convertir a com.support.mukhtar.simplekeyboard.CustomKeyboardView android
  • Android Room Persistences library y Kotlin
  • Métodos sobrecargados que reciben funciones de order superior en Kotlin
  • ¿Cómo get la reference de class de KParameter en kotlin?
  • ¿Cuál es la forma más sencilla de get propiedad segura para subprocesss en Kotlin?