7.2 Kotlin反射概述

7.2.1 概述

反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力,这一概念的提出很快引发了计算机科学领域关于应用反射性的研究。它首先被程序语言的设计领域所采用,并在Lisp和面向对象方面取得了成绩。在Java语言中,反射是一种强大的工具,它使用户能够创建灵活的代码,这些代码可以在运行时装配,无须在组件之间进行源代码链接。反射允许我们在编写与执行时,使程序代码能够接入装载到JVM中的类内部信息,而不是源代码中选定的类协作的代码,这使反射成为构建灵活的应用的主要工具。

Kotlin和Java可以无缝衔接,因此Kotlin能够使用Java的反射机制。另外,Kotlin也有自己的反射机制,需要额外地引入kotlin-reflect.jar。

     implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"

kotlin-reflect.jar中包含kotlin.reflect.full和kotlin.reflect.jvm。

· kotlin.reflect.full是主要的Kotlin反射API。

· kotlin.reflect.jvm用于Kotlin反射和Java反射的互操作。