Si Kotlin no permite la herencia múltiple, ¿por qué KClass<*>.superclasses devuelve una lista? ¿Cómo encontrar esa única superclase?
Según la documentación, las superclasses contienen superclases inmediatas de esta clase, en el orden en que aparecen en el código fuente. Incluye superclases y superinterfaces de la clase, pero no incluye la clase en sí .
De hecho, una class de Kotlin solo puede heredar de una única superclase, pero puede implementar varias superinterfaces.
Tomando prestado de una pregunta / respuesta diferente en StackOverflow, algo como lo siguiente podría funcionar. Sin embargo, no probé esto.
val KClass<*>.isInterface: Boolean get() = java.isInterface val KClass<*>.superclass: KClass<*> get() = superclasses.filterNot { it.isInterface }.single()