继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

DG_Coder
关注TA
已关注
手记 7
粉丝 4
获赞 1

课程信息

课程名称: 一课掌握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反射两者间的不同之处

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP