
上QQ阅读APP看书,第一时间看更新
7.2.2 Kotlin反射API
Kotlin反射的特性:
· 提供对属性和可空类型的访问权限,这是由于Java没有属性和可空类型的概念。
· Kotlin反射不是Java反射的替代品,而是功能的增强。
· 可以使用Kotlin反射来访问各种基于JVM语言编写的代码。
图7-2反映了Kotlin反射API的层次结构。

图7-2 Kotlin反射API的层次结构
其中:
· KClass:一个具有反射功能的类。它是Kotlin反射中的入口点,KClass的一个实例表示对类的引用。
· KParameter:一个具有反射功能的、可传递给函数或属性的参数。
· KCallable:具有反射功能的可调用实例,包括函数和属性,它的直接子接口有KFunction和KProperty。
· KFunction:一个具有反射功能的函数,它有很多子接口。KFunction0、KFunction1和KFunction2后面的数字代表不同数量参数的个数。
· KProperty:一个具有反射功能的属性,它有很多子接口。KProperty0、KProperty1和KProperty2后面的数字表示接收者作为参数的个数。
· KMutableProperty:一个具有反射功能的、使用var声明的属性。KMutableProperty0、KMutableProperty1和KMutableProperty2后面的数字含义同KProperty。