快速上手 Kotlin 开发系列之类型映射

213 阅读1分钟

本节介绍 Kotlin 中类型映射。

Kotlin 中有一个比较有意思的关键字:typealias,有点类似于 C/C++ 代码中的 define,可以将一个类映射到另一类上,但是不同的是 C/C++ define 是宏定义会在编译时转换成对应的类,而 Kotlin 中的 typealias 则表示两个类是完全一致的。

在写代码时,不管是写原始类还是映射类,都是可以的。例如下面的示例中使用 A 类映射一个 File 类。

public typealias A = File

在创建对象时既可以用 A 类,也可以用 File 类,它俩是完全一致的。所以下面的代码完全可以正常编译执行。

fun main() {
    val a:A = File("")
}

其实 typealias 关键字相当于给一个类起一个别名。

在 Kotlin 中,非常多的对象都是通过 typealias 来映射过来的,例如 HashMap 对象,就是通过 typealias 直接映射了 Java 的 HashMap。

public actual typealias HashMap<K, V> = java.util.HashMap<K, V>

为什么要这么做呢?

如果将来 Kotlin 对 HashMap 做一些特性优化的时候,就可以直接在 Kotlin 中优化而不需要去兼容 Java 的 HashMap。

也可以做一些特性的定制,或者说跨平台的定制,我们知道 Kotlin 是不光运行在 JVM 平台的,也可以其他的非 JVM 平台,这样的话,可以直接修改映射的类做到跨平台的支持。

以上就是本节内容,欢迎大家关注~

长按关注