Cómo get un package de kotlin por reflexión

La biblioteca de reflexión Kotlin define KDeclarationContainer , que Represents an entity which may contain declarations of any other entities, such as a class or a package.

this::class devuelve KClass , que extiende KDeclarationContainer , pero ¿cómo obtengo el KDeclarationContainer primario (un KPackage ?)

No hay KPackage en kotlin ahora, pero puedes get un Package java, por ejemplo:

 val pkg:Package = this::class.java.`package` 

Si realmente desea get una instancia de KPackageImpl , puede getla de kotlin.jvm.internal.Reflection , pero no tiene sentido, porque el reflection de Kotlin aún está incompleto , por ejemplo:

 val pkg = Reflection.getOrCreateKotlinPackage(this::class.java, "") // ^--- there is no methods to get package information like as java.lang.Package, // since it is a `KDeclarationContainer` rather than a `KPackage` 
  • Reflexión de Kotlin: parámetro de tipo desconocido
  • Combinar / fusionar classs de datos en Kotlin
  • Proguard y Kotlin-Reflect / Kotlin Anotaciones