poohbar
06/05/2020, 4:43 PMClass from a KClass? For example I have
KClassImpl "class kotlin.String"
and I want to get Java’s String.class from it
I tried:
JvmClassMappingKt.getJavaClass(klass)
but it returns class kotlin.reflect.jvm.internal.KClassImpl 😕streetsofboston
06/05/2020, 4:44 PMMyClass::class.javapoohbar
06/05/2020, 4:44 PMjw
06/05/2020, 4:45 PM.java is a property that works at runtimepoohbar
06/05/2020, 4:47 PM.java is a Kotlin extension property but I have to do this call from Java.Casey Brooks
06/05/2020, 4:58 PMJvmClassMappingKt.getJavaClass(aClass);poohbar
06/05/2020, 5:05 PMtype. I am trying to get the Java class of the first parameter of the data class’s constructor:
KClass<?> klass = JvmClassMappingKt.getKotlinClass(type);
KFunction<?> primaryConstructor = KClasses.getPrimaryConstructor(klass);
List<KParameter> parameters = primaryConstructor.getParameters();
KParameter firstParameter = parameters.get(0);
KType parameterType = firstParameter.getType();
JvmClassMappingKt.getJavaClass(parameterType.getClassifier())poohbar
06/05/2020, 5:05 PMkotlin.reflect.jvm.internal.KClassImpl as the result and I would expect java.lang.String.poohbar
06/05/2020, 5:08 PMgetClassifer() in debugger I do see the jClass there:poohbar
06/05/2020, 5:21 PMgetJavaClass. Changing the last line to:
JvmClassMappingKt.getJavaClass((KClass) parameterType.getClassifier());
fixed it.