やること
Kotlinのリフレクションで取れるKTypeからKClassを取得します。
やり方
例として、ラムダから引数のKClassを取る例を示します。
val lambda: (String?) -> Any? = { /* ラムダの内容は省略 */ }
val reflect: KFunction<Any?> = lambda.reflect()!!
val kType: KType = reflect.parameters.first().type
val classifier = type.classifier!!
// 実際にはKClass<String>が取れる
val kClass: KClass<*> = classifier as KClass<*>
実際にはKClass<String>が取れてしまって(= nullabilityの情報が消えて)いますが、一応KClassが取得できました。