Avatar ·

Wie erhalte ich KClass eines Objekts in Kotlin anstelle von getClass() aus Java?

Hallo! Ich wechsle von Java zu Kotlin und bin auf ein Problem gestoßen. In Java habe ich oft getClass() verwendet, um zur Laufzeit Informationen über die Klasse eines Objekts zu erhalten. Zum Beispiel:

\n\n
Object obj = "Hello";\nClass<?> clazz = obj.getClass(); // Erhalten java.lang.Class\nSystem.out.println(clazz.getName()); // Gibt java.lang.String aus\n
\n\n

In Kotlin weiß ich, dass es KClass gibt — das Analogon zu java.lang.Class, aber wie erhalte ich es? Ich habe es so versucht:

\n\n
val obj: Any = "Hello"\nval clazz = obj::class // Fehler: "This expression is not a class reference"\n
\n\n

Oder so:

\n\n
val clazz = obj.javaClass // Funktioniert, gibt aber java.lang.Class zurück, nicht KClass\n
\n\n

Ich brauche genau