实用 AI

可在线运行 AI 集合,涵盖 AI 文案生成、写作辅助、AI 绘图与照片修复、AI 配音、字幕生成、语音转录以及 AI 视频创作和数字人等多种 AI 服务

查看详情

kotlin中的::class、::class.java、::javaClass以及.javaClass的区别是什么?

kotlin中获取class的这些方式有什么区别,比如::class、::class.java、::javaClass以及.javaClass等等。

kotlinclassjavaClassclass.java
1
268
小课
小课2022-06-15 17:53
1 个回答

::是kotlin反射中常用的操作符,可以用于获取类的引用,函数的引用,属性的引用,更多内容查看官方文档

::class是用于取Kotlin类运行时的引用,返回的是KClass<T>对象。

::class.java分为两部分,先是::class获取Kotlin类运行时的引用,然后是.java,这个是KClass<T>类型的一个扩展属性,用于获取当前KClass<T>对应的Class<T>对象。

.javaClass是Any类型的扩展属性,用于获取当前类型的Class<T>对象。

::javaClass是用于获取javaClass这个扩展属性的引用,返回的是KProperty<T>对象。

关于上面的提到的扩展属性javaClass和java,都可以在JvmClassMapping.kt中找到定义。在涉及到与Java互调,会常用到Class<T>,通过以下方式都能得到Class<T>对象。

加载中...
1
已修改
小课
小课2022-06-15 18:36
你的回答

内容