Conversión de KClass de Kotlin a class regular en Java

Estoy intentando llamar a un método Java normal de Kotlin de la siguiente manera:

public <T> T proxy(KClass<T> kClass) { // unfortunately nothing like getJavaClass() exists return (T) proxy(kClass.getJavaClass()); } public <T> T proxy(Class<T> jClass) { return (T) context.getBean(jClass); } 

En Kotlin, puede llamar a .java en cada KClass. Este no es el caso aquí y no puedo extraer el object de la class Java de KClass. ¿Hay una manera de hacerlo?

La funcionalidad existe, simplemente no donde parece, ya que java es una propiedad de extensión.

Use el método JvmClassMappingKt.getJavaClass .

En Kotlin, los methods de extensión (y los getters / setters de properties) se implementan como methods static de su class contenedora. Si miras la fuente de .java ( Ctrl + Q ), puedes ver que está implementado en JvmClassMapping.kt .

Como la function es a nivel de package y no tiene un object contenedor, simplemente se coloca en el file [Filename]Kt que en este caso es JvmClassMappingKt .

Aquí está la fuente de esta propiedad de extensión:

 @Suppress("UPPER_BOUND_VIOLATED") public val <T> KClass<T>.java: Class<T> @JvmName("getJavaClass") get() = (this as ClassBasedDeclarationContainer).jClass as Class<T> 

Como puede ver, el nombre del método se renombra en la JVM para get getJavaClass .

En tu caso, puedes intentar:

 public <T> T proxy(KClass<T> kClass) { return (T) proxy(JvmClassMappingKt.getJavaClass(kClass)); } 
  • Android con cambio de date y hora, pero nuevamente a time, Firebase solo devuelve el token caducado
  • ¿Cómo mejorar la syntax de kotlin lambda?
  • ¿Por qué el resultado de una function no funciona como una cláusula en una instrucción when en Kotlin?
  • Tema de Kotlin Quasar y problema de locking de canales
  • La implementación de la interfaz de forma anónima en Kotlin da como resultado el error "no tiene constructores"
  • ¿Cómo puedo verificar el tipo genérico en Kotlin?
  • Anotación del calificador personalizado Moshi en Kotlin
  • Eclipse RCP: export de PDE y Kotlin
  • GMaps Android API y GeoJson, cómo cubrir todo el mundo con un agujero
  • Error de complemento de Android Studio Kotlin
  • ¿Cuál es el lugar correcto para comenzar un service en la architecture MVVM Android?