如何通过反思得到一个kotlin包

Kotlin反射库定义了KDeclarationContainer ,它Represents an entity which may contain declarations of any other entities, such as a class or a package.

this::class返回KClass ,它扩展了KDeclarationContainer ,但是如何获得父KDeclarationContainer (一个KPackage ?)

现在kotlin中没有KPackage ,但是您可以取而代之地使用java Package ,例如:

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

如果你真的想得到一个KPackageImpl实例,你可以从kotlin.jvm.internal.Reflection得到它,但是它没有意义,因为Kotlin反射还不完整 ,例如:

 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`