3 votes

Comment obtenir un paquetage kotlin par réflexion

La bibliothèque de réflexion Kotlin définit KDeclarationContainer qui Represents an entity which may contain declarations of any other entities, such as a class or a package.

this::class retours KClass qui s'étend KDeclarationContainer mais comment obtenir le parent KDeclarationContainer (a KPackage ?)

5voto

holi-java Points 15887

Il n'y a pas de KPackage en kotlin pour l'instant, mais vous pouvez obtenir une version de java Package à la place, par exemple :

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

SI vous souhaitez vraiment obtenir un KPackageImpl par exemple, vous pouvez l'obtenir à partir de kotlin.jvm.internal.Reflection mais cela n'a pas de sens, car Kotlin reflect est incomplète pourtant, par exemple :

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`

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X