如何通过反射获取kotlin包

如何通过反射获取kotlin包,kotlin,kotlin-reflect,Kotlin,Kotlin Reflect,Kotlin反射库定义了KDeclarationContainer,它表示一个实体,该实体可能包含任何其他实体的声明,例如类或包。 this::class返回KClass,它扩展了KDeclarationContainer,但是如何获取父级KDeclarationContainer(aKPackage?)kotlin现在没有KPackage,但是您可以取而代之的是java包,例如: val pkg:Package = this::class.java.`package` val pkg = R

Kotlin反射库定义了
KDeclarationContainer
,它
表示一个实体,该实体可能包含任何其他实体的声明,例如类或包。


this::class
返回
KClass
,它扩展了
KDeclarationContainer
,但是如何获取父级
KDeclarationContainer
(a
KPackage
?)

kotlin现在没有
KPackage
,但是您可以取而代之的是java
包,例如:

val pkg:Package = this::class.java.`package`
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`
如果您确实想要获取
KPackageImpl
实例,可以从
kotlin.jvm.internal.Reflection
获取,但这没有意义,因为kotlin reflect还不完整,例如:

val pkg:Package = this::class.java.`package`
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`

谢谢,但我希望能有一个科特林的。上的签入注释实际上提到了一个
KPackage