Kotlin进阶实战
上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。