En Java lorsque l’on souhaite obtenir le type d’une classe on utilise la syntaxe suivante :

String.class

L’équivalent en Kotlin est la syntaxe littérale :

String::class

De la même manière pour obtenir la classe d’un objet la même syntaxe peut être utilisée :

val s = "Hello, Kotlin"
println(s::class) // class kotlin.String

Il est important de noter que nous obtenons une classe Kotlin (une KClass) et non une classe Java.
Lorsque nous interagissons avec du code Java il peut être nécessaire d’obtenir la classe Java plutôt.
Pour cela la syntaxe suivante peut être utilisée :

// Classe
println(String::class.java) // class java.lang.String

// Objet
val s = "Hello, Kotlin"
println(s::class.java) // class java.lang.String
println(s.javaClass)   // idem

Enfin pour obtenir la KClass à partir de la classe Java il suffit d’utiliser la propriété kotlin de la classe :

String::class.java.kotlin // class kotlin.String