在Kotlin中获取一个变量的类型

如何在Kotlin中找到变量类型? 在Java中有instanceof ,但Kotlin不存在:

 val properties = System.getProperties() // Which type? 

你可以使用反射来做到这一点:

 val widget = ... println("${widget::class.qualifiedName}") // with package name or... println("${widget::class.simpleName}") // ... only class name 

请注意:

在Java平台上,使用反射功能所需的运行时组件作为单独的JAR文件(kotlin-reflect.jar)进行分发。 这样做是为了减少不使用反射功能的应用程序的运行时库所需的大小。 如果使用反射,请确保.jar文件已添加到项目的类路径中。

资料来源: https : //kotlinlang.org/docs/reference/reflection.html#bound-class-references-since-11

要测试一个特定的类型,你可以使用is运算符。

 if(widget is Widget) { // ... } 
Interesting Posts