当前位置:嗨网首页>书籍在线阅读

02-类引用

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

10.1.1 类引用

反射的一个基本功能就是在运行时获取Kotlin类的引用,要获取已知静态Kotlin类的引用,可以使用类字面值(class literal)语法。代码如下。

val c = MyClass::class

上面实例中的类引用的是KClass类型的值,Kotlin的类引用和Java的类引用不同,要获得Java的类引用,可以使用KClass实例的Java属性。

val c = MyClass::class.java

自1.1版本开始,Kotlin还允许将对象作为接收者,通过类似于类字面值的语法来获取指定对象的类引用。

val widget: Widget = …
assert(widget is GoodWidget) { "Bad widget: ${widget::class.qualifiedName}" }

虽然定义的接收者表达式的类型为Widget,但是仍然可使用确切的对象类引用,如GoodWidget或BadWidget。