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.java
poohbar
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.