如何通过反射获取kotlin包
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
KDeclarationContainer
,它表示一个实体,该实体可能包含任何其他实体的声明,例如类或包。
this::class
返回KClass
,它扩展了KDeclarationContainer
,但是如何获取父级KDeclarationContainer
(aKPackage
?)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