在Kotlin中获取变量的类型

时间:2017-07-18 11:12:19

标签: kotlin instanceof

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

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

2 个答案:

答案 0 :(得分:30)

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

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

请注意:

  

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

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

要测试特定类型,您可以使用is运算符。

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

答案 1 :(得分:1)

您可以通过 properties::class.simpleName 获取类名