Avatar ·

Comment obtenir KClass d'un objet en Kotlin au lieu de getClass() en Java ?

Bonjour ! Je passe de Java à Kotlin et j'ai rencontré un problème. En Java, j'utilisais souvent getClass() pour obtenir des informations sur la classe d'un objet pendant l'exécution. Par exemple :

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

En Kotlin, je sais qu'il y a KClass — c'est l'équivalent de java.lang.Class, mais comment l'obtenir ? J'ai essayé comme ça :

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

Ou comme ça :

\n\n
val clazz = obj.javaClass // Fonctionne, mais retourne java.lang.Class, pas KClass\n
\n\n

J'ai besoin précisément de