当前位置: 首页 > news >正文

织梦网站怎么上传视频教程上海免费网站建设咨询

织梦网站怎么上传视频教程,上海免费网站建设咨询,如何做招聘网站的对比,wordpress大图插件反射是一种机制#xff0c;它允许我们在运行时检查、修改和操作类或对象的内部结构。反射开启了动态编程的可能性#xff0c;在开发库、框架或工具等场景中非常有用。Java 中的反射 在 Java 中#xff0c;反射一直是实现动态编程的重要基石。它允许开发者在不提前知道类名的… 反射是一种机制它允许我们在运行时检查、修改和操作类或对象的内部结构。反射开启了动态编程的可能性在开发库、框架或工具等场景中非常有用。Java 中的反射 在 Java 中反射一直是实现动态编程的重要基石。它允许开发者在不提前知道类名的情况下于运行时检查类、接口、字段和方法。 Class stringClass String.class; Method[] methods stringClass.getMethods();代码解释String.class 获取 String 类对应的 Class 对象。getMethods() 返回该类以及其父类的所有 公共方法 数组。Kotlin 对反射的需求 虽然 Java 的反射功能很强大但 Kotlin 引入了许多额外的语言特性例如 数据类、扩展函数、可空类型 等这些特性需要额外的反射能力。 Kotlin 提供了 kotlin.reflect 包来支持这些 Kotlin 特有的功能允许对函数、属性和类等语言元素进行检查和操作。Kotlin 反射依赖添加 Gradle (Kotlin DSL) dependencies {implementation(org.jetbrains.kotlin:kotlin-reflect:1.8.22) }解释为项目引入 kotlin-reflect 库以支持 Kotlin 反射功能。 Gradle (Groovy DSL) dependencies {implementation org.jetbrains.kotlin:kotlin-reflect:1.8.22 }解释与 Kotlin DSL 相同只是写法不同。 Maven dependenciesdependencygroupIdorg.jetbrains.kotlin/groupIdartifactIdkotlin-reflect/artifactId/dependency /dependencies解释在 Maven 项目中引入 Kotlin 反射库。数据类示例无反射 data class Source(val name: String, val age: Int) data class Target(var name: String? null, var age: Int 0)val source Source(John, 20)val target Target().apply {name source.nameage source.age }解释 手动将 Source 的属性赋值给 Target。当属性较多或运行时无法确定属性名时这种方法会变得繁琐。使用反射实现通用属性映射 fun S : Any, T : Any map(source: S, target: T) {val sourceProperties source::class.memberPropertiesval targetProperties target::class.memberPropertiessourceProperties.forEach { sourceProperty -targetProperties.find { it.name sourceProperty.name }?.let { targetProperty -if (targetProperty is KMutableProperty*) {targetProperty.setter.call(target, sourceProperty.getter.call(source))}}} }val target Target() map(source, target)解释source::class.memberProperties 获取源对象的所有属性。找到与源属性同名的目标属性并调用 setter 方法赋值。泛型 S, T 使得该方法适用于任意两个类只要属性名匹配。Kotlin 反射核心类 val stringClass String::class val stringType stringClass.starProjectedType解释KClassKotlin 类的反射对象。KCallable函数与属性的通用接口。KFunction函数的反射对象。KProperty属性的反射对象。基本操作示例 实例化类 val stringClass String::class val instance stringClass.createInstance()代码解释 String::class获取 Kotlin 的 KClass 对象表示 String 类的元信息stringClass.createInstance()调用该类的 无参构造函数primary constructor来创建一个新的(String)实例。 调用方法 val function String::toLowerCase val result function.call(HELLO) // hello代码解释 通过 Kotlin 反射 获取类的属性引用 (:。动态调用 toLowerCase 方法,并传入HELLO 作为 调用者也就是接收者对象。。 访问与修改属性 data class Person(val name: String, var age: Int)val person Person(John, 20) val ageProperty Person::age println(ageProperty.get(person)) // 20 ageProperty.set(person, 21) println(person.age) // 21代码解释 通过 Kotlin 反射 获取类的属性引用 (:。用 get() 和 set() 在运行时(传入接收者对象)读取与修改属性值。高级操作 泛型类型信息. val list listOf(1, 2, 3) val type list::class.typeParameters println(type) // [E]代码解释 返回该类在定义时的泛型形参列表 高阶函数参数类型 fun foo(block: () - Unit) { block() }val function ::foo val parameter function.parameters.first() println(parameter.type) // Function0kotlin.Unit代码解释 获取函数 foo 的引用赋给 function 变量。(function的类型是KFunction)返回一个包含该函数所有参数的列表类型为 KParameter取第一个参数也就是这里的 block打印该参数的 Kotlin 类型 反射的优势与限制 优势 实现动态功能如通用对象映射、设计模式等框架与库开发中不可或缺 限制 性能开销大运行时计算多可能引发安全问题访问私有成员并非所有类都能通过反射实例化如匿名类、内部类总结 在 Kotlin 中反射是一个功能强大的运行时检查与操作工具可用于 自动对象映射实现设计模式框架与库开发但需要谨慎使用避免在性能敏感或安全性要求高的场景中滥用。
http://www.zqtcl.cn/news/146033/

相关文章:

  • 做行业网站广告能赚多少钱百度搜索下载安装
  • 寺院网站建设网页搭建
  • 网站设计报价是多少wordpress登录接口
  • 灵宝网站建设建h5网站费用
  • 泊头做网站的有哪些深圳网页制作与网站建设服务器
  • 网站设计的思路网页无法访问百度
  • 简述你对于网站建设的认识网络工程就业岗位有哪些
  • 征婚网站上教人做恒指期货做网站颜色黑色代码多少
  • 海南省建设工程质量监督网站如何做搞笑原创视频网站
  • 网页游戏人气排行榜百度seo插件
  • 免费申请论坛网站更改域名代理商对网站有影响吗
  • 河南做网站公司报价工商做年报网站
  • 用狐狸做logo的网站现在网站开发技术有哪些
  • html 网站添加悬浮二维码瑜伽网站设计
  • 帮别人做网站的单子制作图片库
  • 网站注册步骤律师在线咨询免费24小时电话
  • 经典的网站设计工具怎么做网站表格
  • 韩文网站建设wordpress 置顶顺序
  • 做网站好还是做app好做房产的网站排名
  • 纯静态网站部署服务器如何做高端网站建设
  • 特色食品网站建设策划书网站建设丶seo优化
  • 安徽省六安市建设局网站网络服务提供者知道网络用户利用其网络服务侵害
  • 珠海建设局网站东莞市建设信息网
  • 已有域名怎么做网站wordpress二维码制作教程
  • 做招生网站网站织梦后台一片白
  • wordpress 表单录入优化网站的技巧
  • 域名注册网站的域名哪里来的信息型网站
  • 商贸网站建设常见的网站结构有哪些
  • 网站开发概要设计模板网站qq获取
  • 关键词网站推广王野摩托车是什么牌子