为了账号安全,请及时绑定邮箱和手机立即绑定

【九月打卡】第5天 一课掌握Kotlin 突破开发语言瓶颈

标签:
Kotlin

课程信息

课程名称: 一课掌握Kotlin 突破开发语言瓶颈
课程章节: Kotlin反射(9-1)
课程讲师: bennyhuo

课程内容

反射的基本概念

  • 反射是允许程序在运行时访问程序结构的一类特性
  • 程序结构包括:类、接口、方法、属性等语法特性

反射的依赖

图片描述

dependencies {
	implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
	implementation "org.jetbrains.kotlin:kotlin-reflect"
}

反射的常见用途

  • 列出类型的所有属性、方法、内部类等等
  • 调用给定名称及签名的方法或访问指定名称的属性
  • 通过签名信息获取泛型实参的具体类型
  • 访问运行时注解及其信息完成注入或者配置操作

反射常用的数据结构

KType

  • 描述未擦除的类型或泛型参数等,例如Map<String, Int>
  • 可通过typeOf或者以下类型获取对应的父类、属性、函数参数等

KClass

  • 描述对象的实际类型,不包含泛型参数,例如Map
  • 可通过对象、类型名直接获得

KProperty

  • 描述属性,可通过属性引用、属性所在类的KClass获取
  • 如果没有receiver,那就是KProperty0
  • 如果有一个receiver,那就是KProperty1
  • 如果有两个receiver,那就是KProperty2

KFunction

  • 描述函数,可通过函数引用、函数所在类的KClass获取
  • 如果没有receiver,那就是KFunction0
  • 如果有一个receiver,那就是KFunction1
  • 如果有两个receiver,那就是KFunction2

Kotlin中使用反射

Java反射

  • 优点:无需引入额外依赖,首次使用速度相对较快
  • 缺点:无法访问Kotlin语法特性,需对Kotlin生成的字节码足够了解

Kotlin反射

  • 优点:支持访问Kotlin几乎所有特性,API设计更友好
  • 缺点:引入Kotlin反射库,首次调用慢

学习总结

通过本章学习,掌握Kotlin反射的基础知识,了解到Kotlin反射与Java反射两者间的不同之处

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消