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

kotlin获取泛型集合的类型信息

通过 reified 关键字和内联函数来实现

inline fun <reified T> getClassFromList(list: List<T>): Class<T> {return T::class.java
}fun main() {val list = listOf("Hello", "World")val clazz = getClassFromList(list)println(clazz) // 输出 class kotlin.String
}

注:将reified 和 inline去掉就无法通过T::class.java获取到类型,因为编译的时候会进行类型擦除,所以在运行的时候已经无法获取到类型了,这是Java兼容性的处理机制,kotlin通过reified和inline优化了泛型,实现了运行时获取类型 。

Java 5才引入泛型,为了兼容性的考虑,采用类型擦除的机制来支持泛型。

泛型信息只存在于代码编译阶段,在进入 JVM 之前,与泛型相关的信息会被擦除掉,这个过程被称为类型擦除。

http://www.lryc.cn/news/102227.html

相关文章:

  • AQS源码解析
  • 关于在VS2017中编译Qt项目遇到的问题
  • Python web实战 | 使用 Flask 实现 Web Socket 聊天室
  • Android10 Recovery系列(一)隐藏recovery菜单项
  • 选好NAS网络储存解决方案,是安全储存的关键
  • AnimateDiff论文解读-基于Stable Diffusion文生图模型生成动画
  • centos7安装tomcat
  • 【C#教程】零基础从入门到精通
  • opencv rtsp 硬件解码
  • 机器学习-Gradient Descent
  • MySql003——SQL(结构化查询语言)基础知识
  • springCloud Eureka注册中心配置详解
  • gti 远程操作
  • Ftrace
  • Tomcat修改端口号
  • vue2企业级项目(一)
  • 【前端知识】React 基础巩固(三十八)——log、thunk、applyMiddleware中间件的核心代码
  • hive删除数据进行恢复
  • 二、前端高德地图、渲染标记(Marker)引入自定义icon,手动设置zoom
  • UDF和UDAF、UDTF的区别
  • 小研究 - 浅析 JVM 中 GC 回收算法与垃圾收集器
  • Flowable-服务-骆驼任务
  • 用html+javascript打造公文一键排版系统9:主送机关排版
  • SpringBoot 集成 EasyExcel 3.x 优雅实现 Excel 导入导出
  • RT1052 的四定时器
  • ViT-vision transformer
  • Election of the King 2023牛客暑期多校训练营4-F
  • Nacos的搭建及服务调用
  • uniapp小程序自定义loding,通过状态管理配置全局使用
  • leetcode 45. 跳跃游戏 II