Kotlin反射简单例子

在Kotlin中我们有两种方式来实现反射的功能。一种是调用Java的反射包 java.lang.reflect 下面的API,另外一种就是直接调用Kotlin的kotlin.reflect 包下面的API。
直接贴代码吧

data class KotlinGirl(
var name:String?=null,
var age:String?=null)

先来个构造函数
然后是代码,这里代码只做几个简单的反射,其余用法差不多

fun main() {
    //java方式反射
    var girlClass = KotlinGirl::class.java
    val con= girlClass.getConstructor(String::class.java, String::class.java)
    var newGirl=con.newInstance("love", "18")
    print(newGirl)
    //kotlin方式反射
    var girl=KotlinGirl()
    val con1=girl::age
    con1.set("123")
    print(girl)

}

在这里插入图片描述
第一种用java的反射创建了一个KotlinGirl的实体对象
第二种用kotlin自带反射修改了新的实体对象中age的值,
对比一下,首先java的反射速度远快于kotlin,这一点官方解释是没时间,第二就是kotlin对于方法和成员变量的反射用着非常简单舒服,但是构造函数就不是太舒服了,大家可以试试

最后,本来是想把scala和Groovy等几个的反射写一篇,图片太多了,分开写吧

发布了71 篇原创文章 · 获赞 276 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/weixin_43486804/article/details/104020222